JAVA & Open Framework2013. 10. 5. 13:59

1. log4j-xxx.jar 라이브러리를 프로젝트에 추가한다.


2. 아래와 같이 사용(log4j.xml파일 - class 생성되는 폴더에 위치) : 아래 첨부파일참조   



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="stdout" class="org.apache.log4j.ConsoleAppender"> 

<!-- 콘솔 패턴 레이아웃 설정 -->

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

    <param name="ConversionPattern" value="%t> [%d{yyyy-MM-dd HH:mm:ss}] [%c{1}] [%L line] [%p] %m %n" /> 

</layout>

</appender>



<!-- 날짜별 로그 -->

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

<!-- 이것은 날짜별로 로그를 남김. 파일명.확장자.DatePattern으로 정의함. -->

<param name="file"   value="D:/log4j_xml_daily.log" /> 

    <param name="Append" value="true" />    

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

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

    <param name="ConversionPattern" value="%t> [%d{yyyy-MM-dd HH:mm:ss}] [%c{1}] [%L line] [%p] %m %n"/> 

    </layout> 

</appender>

<!-- pattern layout

%p : debug, info 등의 로그타입

%d : 로그 발생 시간 SimpleDateFormat을 따름( ex) %d{yyyy-MM-dd HH:mm:ss} )

%t : 로그 쓰레드 이름

%F : 로그 발생 프로그램 파일명( ex) HolloWorld.java 등으로 표시됨)

%c : 로그 발생 클래스명(만약 패키지가 너무 길다면 %c{숫자}로 조절 가능)

( ex) action.test1.test2.LoginAction.class => %c{1} : LoginAction /  %c{2} : test2.LoginAction 

 %c{3} : test1.test2.LoginAction / %c{4} : action.test1.test2.LoginAction .....  )  

%M : 로그 발생 메서드명

%L : 호출 코드 라인

%r : 프로그램 시작 후 로그 발생까지 시간

%m : 로그로 전달된 메시지(즉, 발생하도록 세팅한 메시지)

%n : 개행 

 -->



<!-- 특정 크기마다 백업하며 로그 -->

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

<param name="file" value="D:/log4j_xml_rolling.log"/>

<param name="Append" value="true"/>

<param name="MaxFileSize" value="5KB"/>

<param name="MaxBackupIndex" value="3"/>

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

  <param name="ConversionPattern" value="%t> [%d{yyyy-MM-dd HH:mm:ss}] [%c{1}] [%L line] [%p] %m %n"/>

</layout>

</appender>



<!-- xml 로그 -->


<!-- xml 형식으로 로그를 남김 -->

<appender name="xmlout" class="org.apache.log4j.FileAppender">

<param name="file" value="D:/log4j_xml_xmlout.xml"/>

<param name="Append" value="true"/>

<layout class="org.apache.log4j.xml.XMLLayout" />

</appender>

<root> 

      <level value="WARN"/>

      <!-- 또는 <priority value="WARN"/> -->

      <appender-ref ref="stdout"/>

      <appender-ref ref="dailyout"/>

      <appender-ref ref="rolling"/>

      <appender-ref ref="xmlout"/>      

 </root> 

 

</log4j:configuration>




3. Pattern Layout

#%p : debug, info 등의 로그타입
#%d : 로그 발생 시간 SimpleDateFormat을 따름( ex) %d{yyyy-MM-dd HH:mm:ss} )
#%t : 로그 쓰레드 이름
#%F : 로그 발생 프로그램 파일명( ex) HolloWorld.java 등으로 표시됨)
#%c : 로그 발생 클래스명(만약 패키지가 너무 길다면 %c{숫자}로 조절 가능)
#( ex) action.test1.test2.LoginAction.class => %c{1} : LoginAction /  %c{2} : test2.LoginAction 
#  %c{3} : test1.test2.LoginAction / %c{4} : action.test1.test2.LoginAction .....  )  
#%M : 로그 발생 메서드명
#%L : 호출 코드 라인
#%r : 프로그램 시작 후 로그 발생까지 시간
#%m : 로그로 전달된 메시지(즉, 발생하도록 세팅한 메시지)
#%n : 개행



출처 및 참조 : http://pupustory.tistory.com/153

Posted by 아로나