본문 바로가기

WAS/Tomcat

[Log4j] 여러파일에 로그를 남기는 방법에 대하여

Log4j에서 여러파일에 로그를 남기는 방법에 대해서 잠시 언급하겠습니다.

아래 부분에서는 존칭을 뺀 단어를 사용합니다.

 

!-----------------------------------------------------------------------------! 
! category(logger) 설정                                                                                    ! 
!-----------------------------------------------------------------------------! 
log4j.debug=true
#log4j.disable=INFO
log4j.rootLogger=DEBUG, CONSOL, SYSTEM

 

 

!-----------------------------------------------------------------------------! 
! appender(log destinations/targets) 와 옵션들을 설정                                         ! 
!-----------------------------------------------------------------------------!

! FILE에 로그 쓰기, 지정한 크기를 넘어서면 파일을 교체 
log4j.appender.CONSOL=org.apache.log4j.ConsoleAppender

! 로그메세지들이 전혀 버퍼되지 않는 것을 의미하며 대부분의 상황에 적당하다. 
log4j.appender.CONSOL.ImmediateFlush=true 

! 이 appender 는 여기 명시된 priority 와 같거나 높은 메세지만 로깅한다
log4j.appender.CONSOL.Threshold=DEBUG

! Layout 형식 : TTCCLayout, HTMLLayout,  XMLLayout, PatternLayout, SimpleLayout 
! PatternLayout, SimpleLayout - 자바의 Throwable 에러들과 예외를 무시한다
log4j.appender.CONSOL.layout=org.apache.log4j.PatternLayout

! %l - 소스코드의 위치정보를 출력한다. %C. %M(%F:%L) 의 축약형이다
log4j.appender.CONSOL.layout.ConversionPattern=%-5p %l %x =>%m%n

 

 

 

log4j.appender.SYSTEM=org.apache.log4j.DailyRollingFileAppender
log4j.appender.SYSTEM.File=C:/logs/system.html

! 매일 자정에 로그파일을 교체하며 기존파일은 xx.log_2004.07.12
log4j.appender.SYSTEM.DatePattern='.'yyyy-MM-dd
log4j.appender.SYSTEM.Threshold=DEBUG

! 자바의 Throwable 에러들과 예외를 포함하기 위해 HTMLLayout을 사용한다.
log4j.appender.SYSTEM.layout=org.apache.log4j.HTMLLayout

! [%d{yyyy-MM-dd}형식은 프로그램의 실행속도를 느리게 함으로 SimpleDateFormat 형식지정한다.
log4j.appender.SYSTEM.layout.DateFormat=ISO8601
! [YYYY-MM-DD HH:MM:SS, mm] 형식을 뜻한다.
log4j.appender.SYSTEM.layout.TimeZoneID=GMT-8:00 

! %l - 소스코드의 위치정보를 출력한다. %C. %M(%F:%L) 의 축약형이다
log4j.appender.SYSTEM.layout.ConversionPattern=[%d] %-5p %l - %m%n

 

 

 

! 각 업무 상위패키지를 지정하여 logging 셋팅한다.


log4j.logger.rkhwang.biz.protoss=DEBUG, PROTOSS
log4j.logger.rkhwang.biz.teran=DEBUG
TERAN
log4j.logger.rkhwang.biz.zerg=DEBUG
ZERG

 

 

log4j.appender.PROTOSS=org.apache.log4j.DailyRollingFileAppender
log4j.appender.PROTOSS.File=C:/logs/protoss.log
log4j.appender.PROTOSS.DatePattern='.'yyyy-MM-dd
log4j.appender.PROTOSS.Threshold=DEBUG
log4j.appender.PROTOSS.layout=org.apache.log4j.PatternLayout
log4j.appender.PROTOSS.layout.DateFormat=ISO8601 
log4j.appender.PROTOSS.layout.TimeZoneID=GMT-8:00 
log4j.appender.PROTOSS.layout.ConversionPattern=[%d] %-5p %l - %m%n

 

log4j.appender.TERAN=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TERAN.File=C:/logs/teran.log
log4j.appender.TERAN.DatePattern='.'yyyy-MM-dd
log4j.appender.TERAN.Threshold=DEBUG
log4j.appender.TERAN.layout=org.apache.log4j.PatternLayout
log4j.appender.TERAN.layout.DateFormat=ISO8601 
log4j.appender.TERAN.layout.TimeZoneID=GMT-8:00 
log4j.appender.TERAN.layout.ConversionPattern=[%d] %-5p %l - %m%n

 

log4j.appender.ZERG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ZERG.File=C:/logs/zerg.log
log4j.appender.ZERG.DatePattern='.'yyyy-MM-dd
log4j.appender.ZERG.Threshold=DEBUG
log4j.appender.ZERG.layout=org.apache.log4j.PatternLayout
log4j.appender.ZERG.layout.DateFormat=ISO8601 
log4j.appender.ZERG.layout.TimeZoneID=GMT-8:00 
log4j.appender.ZERG.layout.ConversionPattern=[%d] %-5p %l - %m%n

 

C:/logs/ 에 해당 패키지(업무)별로 로그를 따로 관리가 용이해 진다.

log4j를 사용할 경우 SYSTEM Log가 많이 발생하여 디버그, 에러 메세지를 보기가 힘듭니다.

 위와 같이 할 경우, 해당 로그에는 system에서 발생하는 log는 존재하지 않습니다.

시스템에서발생하는 로그는 systeml.html파일을 보시면 됩니다.

Tip이라고 할 수 있을 지 모르지만, 많이 도움을 받은 저로써는 다른 분들이 도움이 되었으면 하는 마음에 글을 올립니다.

 
출처 :  http://www.okjsp.pe.kr/bbs?act=VIEW&bbs=bbs4&seq=46372 

'WAS > Tomcat' 카테고리의 다른 글

[tomcat] Apache, Tomcat 연동하기  (0) 2011.06.30
java heap 메모리 늘리기(v_4.1 실행아이콘)  (0) 2010.04.09