Log4j log4j에서 여러파일에 로그남기기

황제낙엽 2007.09.04 13:10 조회 수 : 16 추천:81

sitelink1  
sitelink2  
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  
출처 : 네이버 지식인!!

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

"<
내용출처 : [기타] 블로그 집필 - 민군네집