java에서 다양한 log framework이 있다.
요즘은 maven이나 gradle등으로 설정하면 다 되는데 생각보다 standalone으로 셋팅한는 법이 없어 정리해보려 한다.
그중에 logback 과 slf4j 연동을 한번 해보려 한다
slf4j 다운로드
https://www.slf4j.org/download.html 에서 보면 Maven central 에서 다운로드 받게 되어 있다
slf4j-api-{latest version}.jar 를 다운받는다
logback 다운로드
https://www.slf4j.org/manual.html 에서 보면 필요한 Library 등이 있다.
지원되는 다른 logger 들도 많다
설명에 보면 logback-classic-${logback.version}.jar , logback-core-${logback.version}.jar 두개가 필요하다.
https://logback.qos.ch/download.html 에서 다운로드 하자.
다음에 logback.xml 을 추가하자.
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="trace">
<appender-ref ref="STDOUT" />
</root>
</configuration>
VSCode의 최종모습
Referenced Library에 3개를 추가하고, logback.xml 추가하자.
App.java 코드다. 실행해보자.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class App {
final static Logger logger = LoggerFactory.getLogger(App.class);
public static void main(String[] args) throws Exception {
logger.info("Hello, World for slf4j info");
logger.warn("Hello, World for slf4j warn");
logger.debug("Hello, World for slf4j debug");
logger.trace("Hello, World for slf4j trace");
}
}
실행하면 아래가 나온다
16:15:17 [main] INFO App - Hello, World for slf4j info
16:15:17 [main] WARN App - Hello, World for slf4j warn
16:15:17 [main] DEBUG App - Hello, World for slf4j debug
16:15:17 [main] TRACE App - Hello, World for slf4j trace
logback.xml 을 수정해보자
log level 과 문구를 보면 대충 감이 올것이다
root level= "trace|debug|warn|info" 에 따라 로그가 찍히고 안찍히고 하겠지..
appender 속성에 name 과 root 내에 있는건 같겠지
pattern에는 로그 포멧이군
https://logback.qos.ch/manual/layouts.html 에서 pattern format을 보면 될듯하다.
'프로그래밍 > slf4j 사용하기' 카테고리의 다른 글
slf4j 와 log4j 2 연동 (0) | 2022.01.07 |
---|