[펌] Log4J Configuration

프로그래밍/Library 2007. 11. 28. 09:37 Posted by galad
#####################################
#  Log4J Configuration                       #
#####################################

작성자 : 장형화(hhjang97@venus.uos.ac.kr)
작성일 : 2005. 08. 11
수정일 :

원본 :
설명 :


################################# ################################# #################################

LOG4J !!

디버그나 에러 확인을 위해 항상 사용하는 API입니다.

다양한 Level로 나눠서 설정 가능하며, System.out.println을 난발(?) 하지 않도록 도와주고 있죠 ^^;



설정 부분에서 필요한 부분을 그때그때 웹사이트 돌아다니며 찾았는데,

여기에 포스트 해놓고 필요할때 찾아 쓰려고요 ^^;



!-----------------------------------------------------------------------------!
! 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


#################################
#  참고 log4j.properties 파일
#################################

log4j.rootCategory=, dest2, C

log4j.appender.C=org.apache.log4j.DailyRollingFileAppender
log4j.appender.C.File= error.log
log4j.appender.C.layout=org.apache.log4j.PatternLayout
#log4j.appender.C.layout.ConversionPattern=[%d{yyyy-MM-dd hh:mm:ss}] %-5p [%-10t] %c{2} - %m%n
log4j.appender.C.layout.ConversionPattern=[%d{yyyy-MM-dd hh:mm:ss}] - %m%n
log4j.appender.C.Append=true
log4j.appender.C.DatePattern='.'yyyyMMdd
log4j.appender.C.Threshold=ERROR
log4j.appender.C.ImmediateFlush=true


log4j.appender.dest2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dest2.File=debug.log
log4j.appender.dest2.layout=org.apache.log4j.PatternLayout
#log4j.appender.dest2.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %-5p [%-10t] %c{2} - %m%n
log4j.appender.dest2.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] - %m%n
log4j.appender.dest2.Append=true
log4j.appender.dest2.DatePattern='.'yyyyMMdd
log4j.appender.dest2.Threshold=DEBUG
log4j.appender.dest2.ImmediateFlush=true



#---------------------------------------------------------------------
# %n - newline                                                               
# %m - your log message                                               
# %p - message priority (FATAL, ERROR, WARN, INFO, DEBUG or custom)          
# %r - millisecs since program started running                               
# %% - percent sign in output                                                
#                                                                            
#-----------------------SOME MORE CLUTTER IN YOUR LOG-------------------------
# %c - name of your category (logger), %c{2} will outputs last two components
# %t - name of current thread                                                
# %x - Nested Diagnostic Context (NDC) (you supply it)        
#                                                                            
#-------------------------SLOW PERFORMANCE FORMATS----------------------------
# %d - date and time, also %d{ISO8601}, %d{DATE}, %d{ABSOLUTE},              
#        %d{HH:mm:ss,SSS}, %d{dd MMM yyyy HH:mm:ss,SSS} and so on       
# %l - Shortcut for %F%L%C%M                                                 
# %F - Java source file name                                                 
# %L - Java source line number                                             
# %C - Java class name, %C{1} will output the last one component             
# %M - Java method name    
#-----------------------------------------------------------------------




#################################
#
#################################