others

Logging in Tomcat with Log4j

aircook 2008. 4. 18. 14:06

Tomcat 사용시 찍히는 로그는 default로 JDK의 java.util.logging을 사용하고 있으나, log4j를 사용해서 찍고 싶은 생각이 들었다. Tomcat 홈페이지에 가서 검색해보니 방법이 나와 있었다.

Tomcat 버전은 6.0.16 이다.
http://tomcat.apache.org/tomcat-6.0-doc/logging.html

 

log4j.properties파일을 $CATALINA_HOME/lib에 만들어 넣는다. log4j.xml을 넣어도 상관없다.

 

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

 

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">

        <layout class="org.apache.log4j.PatternLayout">

            <param name="ConversionPattern" value="%d{yyyy.M.d. a h:mm:ss} %l %n%p : %m%n" />

        </layout>

    </appender>

 

    <appender name="DAILYROLLINGFILE" class="org.apache.log4j.DailyRollingFileAppender">

                     <param name="append" value="false"/>

                     <param name="DatePattern" value="'.'yyyy-MM-dd"/>

                     <param name="file" value="${catalina.home}/logs/tomcat.log "/>

                     <layout class="org.apache.log4j.PatternLayout">

            <param name="ConversionPattern" value="%d{yyyy.M.d. a h:mm:ss} %l %n%p : %m%n" />

                     </layout>

           </appender>

 

    <!-- Priority: DEBUG, INFO, WARN, ERROR, FATAL -->

    <root>

        <level value="INFO"/>

                     <appender-ref ref="CONSOLE"/>

                     <!-- 

                     <appender-ref ref="DAILYROLLINGFILE"/>

                     -->

    </root>

</log4j:configuration>

 

1.2버전 이상의 log4j를 다운받아 log4j-1.2.**.jar $CATALINA_HOME/lib에 넣는다. commons-logging.jar는 필요없어 보이지만 같이 넣어준다. 로깅 구현체가 바뀌어도 소스 수정할 필요가 없음으로 로깅시 기본적으로 commons-logging을 이용하게는게 좋은 방법인거 같다.


Tomcat 홈페이지에서 소스파일을 내려받은 후 extras.xml파일을 이용해 ant bulild를 한다. build를 진행하면 output/extras/tomcat-juli.jar, output/extras/tomcat-juli-adapters.jar 파일이 생성된다. ant path에 걸려 있다면 다음과 같이 명령을 주면 된다.

 

C:\apache-tomcat-6.0.16-src>ant -file extras.xml

 

$CATALINA_HOME/bin/tomcat-juli.jar 파일을 build output 폴더에 있는 파일로 바꾼다(overwrite).

$CATALINA_HOME/lib 폴더에tomcat-juli-adapters.jar을 넣어준다.

 

Tomcat을 다시 시작하면 log4j.xml 설정에 따라 로깅이 되는모습을 볼 수 있다.



혹시 몰라 tomcat-juli.jar, tomcat-juli-adapters.jar 첨부한다
.