-
log4j.xml 설정 정리 (log4j.xml 세팅대로 level 이 안먹는다고?)♣ Tech & Biz Salon/Tech 2012. 7. 19. 12:29
- 환경 STS (spring3.1, log4j 1.2.15 )
* web.xml 에 log4j config file 경로를 지정하여
해당 config파일내에 logger 를 추가하고, 별도 파일 출력한다던가 하면
돌아가긴 하는데, 뜻대로 되지는 않았다. log level 지정이 원하는대로 안되는 상황이 발생함.
이때 tomcat 기동시 log에는 log4j config load 를 /WEB-INF/spring/log4j/log4j.xml
파일을 잘 보고 있다고 나와서 별 의심없이 해당 파일만 죽어라 이래저래 고쳤었다.
근데 오늘 이클립스 좌측 뷰를 보니 헐... log4j.xml 이 다른데도 있는 것이었다.
▶ 좌충우돌 상황
Maven 사용시 src/main/resource 밑에 log4j.xml 가 있음 ( Spring Mvc Template 이용시 자동생성되어 있음 )
web.xml 에 별 기술하지 않아도 log4j 정상동작함
기억을 살려보니 Template 세팅후 log4j 로그가 나왔었다.
▶ 처리
두개의 log4j.xml 을 동일하게 맞춰주면 잘됨.
또는 src/main/resource 를 삭제하여도 동작함.
web.xml 일부
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/spring/log4j/log4j.xml</param-value>
</context-param>
<context-param>
<description>Interval between config file refresh checks, in milliseconds. If not specified,
no refresh checks will happen, which avoids starting Log4J's watchdog thread.
1000 * 60 = 1Minutes
I have ever tested. This Works Well.
</description>
<param-name>log4jRefreshInterval</param-name>
<param-value>6000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
* log4jRefreshInterval 을 세팅하면
log4j.xml 에서 level 이나 로그출력 패턴 변경을 하면 자동 리프레쉬 된다.log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> -->
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss.SSS} %5p %C [%M :%L] %m%n" />
</layout>
</appender>
<appender name="dailyRollingFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="D:/JE/applogs/pss.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'-'yyyyMMdd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<!-- <param name="ConversionPattern" value="%d %5p [%c:%L] %m%n" /> -->
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss.SSS} %5p %C [%M :%L] %m%n" />
</layout>
</appender>
<!-- 3rdparty Loggers -->
<logger name="com.orgos" additivity="true">
<level value="DEBUG" />
<appender-ref ref="dailyRollingFile" />
</logger>
<logger name="org.springframework.core">
<level value="WARN" />
</logger>
<logger name="org.springframework.beans">
<level value="WARN" />
</logger>
<logger name="org.springframework.context">
<level value="WARN" />
</logger>
<logger name="org.springframework.web">
<level value="WARN" />
</logger>
<!-- Root Logger -->
<root>
<priority value="debug" />
<appender-ref ref="stdout" />
</root>
'♣ Tech & Biz Salon > Tech' 카테고리의 다른 글
ibatis 환경에서 SQLServer의 CTE 쿼리 동작할까? (0) 2012.07.20 화면보호기 실행 명령어 (0) 2012.07.10 SQLServer 2008 R2 설치 관련 사전 검토 (0) 2012.07.10