IT'S DO
728x90

보통 프로젝트를 진행하면서 나는 System.out.println(" 변수 내용 " + 변수); 를 사용했었다.

 

하지만 로그 레벨을 제어할 수 없다고 하면서, log4j를 사용하는 것이 좋다고 한다.

 

 

 

# 첫번째 방법.

 

build.gradle.kts 쪽에서

implementation("org.slf4j:slf4j-api:2.0.5")

써주고 gradle 빌드 해준다.

 

원하는 자바에 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 Logger logger = LoggerFactory.getLogger(getClass());

를 넣어준다.

 

logger.debug("result ", result);

또는 info 등 원하는 로그 레벨로 사용해준다.

 

# 두번째 방법

 

참고 : SLF4J 뜻은
Simple Logging Facade for Java
자바를 위한 간단한 로깅처리 처리라는 뜻

 

build.gradle.kts 쪽에서

compileOnly("org.projectlombok:lombok")

 또는

annotationProcessor("org.projectlombok:lombok")

를 넣어준다.

같이 써도 문제는 없다.

 

원하는 자바에 

import lombok.extern.slf4j.Slf4j;
@Slf4j
public class main {

를 넣어주고 

 

log.debug("result ",result);

마찬가지로 원하는 로그 레벨을 사용해준다.

 


 

# 위에만 할 시에 log가 콘솔창에 안나옴.

 

해줘야할 것.

 

resources 부분에 

logback-spring.xml을 만들고

 

그 안에

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">

<!-- Appenders -->
<!-- 전달받은 로그를 어디에 출력할지 결정. 콘솔 출력, 파일 저장, 데이터베이스 저장 등 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder> <!-- encoder : appender에 포함되어 출력할 로그의 형식을 지정 -->
        <Pattern>%d %5p [%c] %m%n</Pattern>
    </encoder>
</appender>

<appender name="console-infolog" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <Pattern>%d %5p %m%n</Pattern>
    </encoder>
</appender>

<!-- Logger -->
<!-- 로그를 출력하는 요소로, level 속성을 통해 출력할 로그 레벨을 조절하여 appender에 전달. 첫 번째 logger에서 com.dandy.spring.api src/main/java/ 디렉터리 안의 자바 패키지 경로를 의미함.  -->
<logger name="com.dandy.spring.api" level="DEBUG" appender-ref="console" />
<logger name="jdbc.sqlonly" level="DEBUG" appender-ref="console-infolog" />
<logger name="jdbc.resultsettable" level="DEBUG" appender-ref="console-infolog" />

<!-- Root Logger -->
<root level="off">
    <appender-ref ref="console" />
</root>
</configuration>

를 넣어주기

profile

IT'S DO

@멋진놈

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!