logger는 기본적으로 정의한 패키지의 조상으로부터 모든 appender을 상속받습니다.
만약 다음과 같이 root와 org.springframework 두개의 logger가 같은 appender를 사용한다면 같은 메시지가 두번 찍히는 것을 확인할 수 있습니다.
<logger name="org.springframework">
<level value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</logger>
<root>
<level value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</root>
결과
2008. 1. 7. 오후 6:58:41 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:250)
INFO : FrameworkServlet 'spring': initialization completed in 484 ms
2008. 1. 7. 오후 6:58:41 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:250)
INFO : FrameworkServlet 'spring': initialization completed in 484 ms
2008. 1. 7. 오후 6:58:41 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:129)
DEBUG : Servlet 'spring' configured successfully
2008. 1. 7. 오후 6:58:41 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:129)
DEBUG : Servlet 'spring' configured successfully
이런경우에 additivity="false"라고 선언해주면 로깅메세지가 중복되어 찍히는 것을 막을 수 있습니다.
<logger name="org.springframework" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="CONSOLE"/>
</logger>
결과
2008. 1. 7. 오후 7:00:52 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:250)
INFO : FrameworkServlet 'spring': initialization completed in 547 ms
2008. 1. 7. 오후 7:00:52 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:129)
DEBUG : Servlet 'spring' configured successfully
한마디로 additivity 속성은 상위 appender를 상속받는 것을 제어할수 있게 해주는 옵션입니다.
'others' 카테고리의 다른 글
JEUS5 webadmin port찾기 (0) | 2009.01.22 |
---|---|
Logging in Tomcat with Log4j (0) | 2008.04.18 |
서블릿 보안 3 (0) | 2007.11.22 |
서블릿 보안 2 (0) | 2007.11.22 |
서블릿 보안 1 (0) | 2007.11.22 |