관리 메뉴

HAMA 블로그

log4j 예제 & 설명 본문

데브옵스

log4j 예제 & 설명

[하마] 이승현 (wowlsh93@gmail.com) 2015. 8. 3. 16:58


- 관련 jar 를 다운받아서 프로젝트에 추가합니다.

- 클래스패스에 log4j.xml 파일을 추가합니다. 

- log4j.xml 파일에 아래 내용을 써 넣습니다.


1.  Console 로 출력 


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

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

<log4j:configuration debug="true"

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-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />

   </layout>

</appender>

 

<root>

<level value="DEBUG" />

<appender-ref ref="console" />

</root>

 

</log4j:configuration>


<level value="DEBUG"/>: DEBUG 레벨부터 출력하라. 

<appender-ref ref="console"/>: console 에 출력할거야.


2. 파일로 출력 


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

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

<log4j:configuration debug="true"

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

 

<appender name="file" class="org.apache.log4j.RollingFileAppender">

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

  <param name="maxFileSize" value="10KB" />

  <param name="maxBackupIndex" value="5" />

  <!-- For Tomcat -->

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

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

<param name="ConversionPattern" 

value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />

  </layout>

</appender>

 

<root>

<level value="ERROR" />

<appender-ref ref="file" />

</root>

 

</log4j:configuration>


<param name="append" value="false" />: 어플리케이션 실행시마다 덮어쓸것이냐? 뒤에 붙힐것이냐? 디폴트 : true


3. 콘솔과 파일에 출력 


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

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

<log4j:configuration debug="true"

  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-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />

   </layout>

</appender>

 

<appender name="file" class="org.apache.log4j.RollingFileAppender">

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

   <param name="maxFileSize" value="10MB" />

   <param name="maxBackupIndex" value="10" />

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

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

<param name="ConversionPattern" 

value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />

   </layout>

</appender>

 

<root>

<level value="DEBUG" />

<appender-ref ref="console" />

<appender-ref ref="file" />

</root>

 

</log4j:configuration>


<appender-ref ref="file" />: file 에 출력할거야.

${catalina.home}/logs/myStruts1App.log: 이 위치에 출력할거야.  


3. 패키지/클래스별 출력 

    <logger name="org.springframework" additivity="false">

        <level value="WARN" />

        <appender-ref ref="console" />

        <appender-ref ref="file" />

    </logger>


"org.springframework"         은 WARN 이상부터만 출력하라~ 

 additivity="false"               로그 이벤트가 부모에서 전달되지 않는다. 


4. 날짜별 파일 출력



5. 용량별 파일 출력



 



레퍼런스: 

http://www.mkyong.com/logging/log4j-xml-example/

http://seosh81.info/?p=404

http://logging.apache.org/log4j/1.2/manual.html


Comments