반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

[SpringBoot] log4j의 additivity 옵션 본문

⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆/Spring

[SpringBoot] log4j의 additivity 옵션

yeonee 여니 2023. 10. 19. 01:21
728x90
반응형
SMALL

안녕하세요.
#yeoneeblog 여니입니다:)

 

logger는 기본적으로 정의한 패키지의 조상으로부터 모든 appender을 상속받습니다.

다음과 같이 두개의 logger가 같은 appender를 사용한다면 같은 메시지가 두번 찍히는 것을 확인할 수 있습니다.

<logger name="org.springframework">
	<level value="DEBUG">
    <appender-ref="CONSOLE"/>
</logger>
<root>
	<level value="DEBUG">
    <appender-ref ref="CONSOLE"/>
</root>

<변경 전>

 

2개의 logger가 같은 appender를 사용하면, 로그가(동일한 메시지가) 중복으로  출력됩니다.
이때, 둘 중 하나의 로거에 additivity=false 로 변경해주면, 중복적인 출력이 방지됩니다.

 

<logger name="org.springframework" additivity="false">
	<level value="DEBUG">
    <appender-ref="CONSOLE"/>
</logger>
<root>
	<level value="DEBUG">
    <appender-ref ref="CONSOLE"/>
</root>

<변경 후>

 

결과적으로 log4j의 additivity 속성은 상위 appender를 상속받는 것을 제어할 수 있게 해주는 옵션입니다.

 

+ 추가 사례

<logger name="com.a" additivity="true">
    <level value="DEBUG" />
               <appender-ref ref="test_file" />
</logger>

<logger name="com.a.b.c" additivity="false">
 <level value="DEBUG" />
     <appender-ref ref="test_file" />
     <appender-ref ref="test_console" />
     <appender-ref ref="test_package" />
</logger>


additivity="false" 를 true로 설정하게 되면, com.a.b.c 소스에 대한 로그가 test_file 에 2번 찍히게 됩니다.
따라서, false 로 설정해주어 중복 로깅 방지처리가 필요합니다.

 

 

+참조 사이트

728x90
반응형
LIST