STABLE version (ACTIVELY DEVELOPED) The current actively developed version of logback supporting Java EE (java.* namespace) is1.3.6. It requires SLF4J version 2.0.4 andJDK 8. The current actively developed version of logback supporting Jakarta EE (jakarta.* namespace) is1.4.6.It requires SLF4J version 2.0.4 and JDK 11.
로그에는 level이 있고 이 level에 대한 설정을 담당하는 부분이 <root level="debug"> 부분이다. 즉 현재는 우리 프로젝트에서는 debug 이상의 로그만 보겠다는 의도이다. (따라서 trace 출력되지 않았다.) level을 info로 변경해서 실행해 보자.
아까와는 달리 info부터만 출력되는 것을 확인할 수 있다. 이를 통해서 개발 시에는 level을 trace로 설정해서 모든 로그를 보고 운영 시에는 info로 설정해서 필요한 로그만 볼 수 있다.
그런데 만약 우리가 사용하는 다른 라이브러리에서도 trace, debug 메시지를 뿜어내고 있다면 어떻게 될까?
우리는 외부 라이브러리의 로깅에는 사실 관심이 없기 때문에 그들의 level은 좀 올려줄 필요가 있다.이런 경우 <logger> 태그를 이용한다. <logger>의 name 속성에 package를 설정하고 level에 로그 레벨을 설정하면 해당 package에서 출력되는 로그만 별도로 레벨이 설정된다.
<!-- org.springframework에서 나오는 로그는 info 부터 표시 --><loggername="org.springframework"level="info"></logger><!-- 프로젝트의 기본 log level은 trace --><rootlevel="trace"><appender-refref="STDOUT" /></root>
이제 개발 시에는 root의 level을 trace로 하고 운영 시에는 info로 만들어주면 깔끔히 로그를 관리할 수 있게 되었다.
appender 구성
appender
현재 사용된 appender는 ConsoleAppender로 로그를 콘솔에 출력하는 역할을 수행한다. appender는 encoder를 하위 태그로 갇는데 이 정보를 이용하여 OutputStream을 구성한다. <pattern>은 어떤 형태로 출력할 것인지 layout을 구성한다.