Java/Logging

Logging > Logback > additivity

Krevis 2025. 2. 11. 14:13

Logback은 계층적 로깅을 따름

 

Logger의 로깅은 상위 Logger에게 전파됨. 이는 중복 로깅이 될 수 있다는 말이다

 

예를 들어 아래와 같이 Root logger의 레벨은 INFO로 설정하고, MyBatis 관련 로깅은 DEBUG로 설정한다고 해보자

<logger name="org.mybatis" level="DEBUG" />

<root level="INFO">
  <appender-ref ref="STDOUT" />
</root>

 

org.mybatis 패키지 하위에서 DEBUG 로그를 출력한 뒤 Root logger에도 전파되지만, INFO 레벨에 막혀 출력이 되지 않는다

additivity의 기본값은 true이다

 

additivity의 값을 false로 설정하면 어떻게 될까?

<logger name="org.mybatis" level="DEBUG" additivity="false" />

<root level="INFO">
  <appender-ref ref="STDOUT" />
</root>

 

false로 설정하면 org.mybatis의 로그는 더이상 출력되지 않는다

이를 출력하기 위해서는 별도의 Appender를 설정해야 한다

 

<logger name="org.mybatis" level="DEBUG" additivity="false">
  <appender-ref ref="MYBATIS_APPENDER" />
</logger>

<root level="INFO">
  <appender-ref ref="STDOUT" />
</root>

 

'Java > Logging' 카테고리의 다른 글

Logging > Logback > MyBatis  (0) 2025.02.11