본문 바로가기
백엔드기술/개발언어

Log4j XML 설정

by RevFactory 2012. 9. 17.

#log4j.rootLogger=DEBUG,console,INFO, web
#log4j.rootLogger = INFO, stdout
#핸들러의 로깅레벨  : SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL

 

log4j.rootLogger=CONSOL , DEBUG , ERROR , SYSTEM , WARN , WEB
log4j.appender.CONSOL=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOL.Append=true
log4j.appender.CONSOL.ImmediateFlush=true
log4j.appender.CONSOL.Threshold=INFO
log4j.appender.CONSOL.DatePattern='.'yyyy-MM-dd
log4j.appender.CONSOL.MaxFileSize=20MB
log4j.appender.CONSOL.MaxBackupIndex=10

 

 

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

#소스코드의 위치정보를 출력한다. %C. %M(%F:%L) 의 축약형이다 / %d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
log4j.appender.CONSOL.layout.ConversionPattern=[%-5p] %d{HH:mm:ss} [%c] [time: %r] - %m%n

 

 

# 로그파일 경로.
log4j.appender.CONSOL.File=${catalina.home}/logs/tomcat.consol.log

 

#[%d{yyyy-MM-dd}형식은 프로그램의 실행속도를 느리게 함으로 SimpleDateFormat 형식지정한다
log4j.appender.CONSOL.layout.DateFormat=ISO8601

 

#[YYYY-MM-DD HH:MM:SS, mm] 형식을 뜻한다.
log4j.appender.CONSOL.layout.TimeZoneID=GMT-8:00


#매일 자정에 로그파일을 교체하며 기존파일은 xx.log_2004.07.12 org.apache.log4j.ConsoleAppender , DailyRollingFileAppender
log4j.appender.SYSTEM=org.apache.log4j.RollingFileAppender
log4j.appender.SYSTEM.Append=true
log4j.appender.SYSTEM.DatePattern='.'yyyy-MM-dd
log4j.appender.SYSTEM.Threshold=INFO
log4j.appender.SYSTEM.ImmediateFlush=true
log4j.appender.SYSTEM.MaxFileSize=20MB
log4j.appender.SYSTEM.MaxBackupIndex=10

 

 

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

 

 

#[%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

 

 

#소스코드의 위치정보를 출력한다. %C. %M(%F:%L) 의 축약형이다 / %d{HH:mm:ss} %5p (%C{2} - %M:%L) - %m%n
log4j.appender.SYSTEM.layout.ConversionPattern=%d{dd-MM-yy HH:mm:ss:SSS} - {%p} %c{2} Thread [%t]; %x %m%n

 

 

# 로그파일 경로.
log4j.appender.SYSTEM.File=${catalina.home}/logs/tomcat.stdout.log

log4j.appender.WEB=org.apache.log4j.RollingFileAppender
log4j.appender.WEB.File=${catalina.home}/logs/tomcat.web.log
log4j.appender.WEB.MaxFileSize=20MB
log4j.appender.WEB.MaxBackupIndex=10
log4j.appender.WEB.layout=org.apache.log4j.PatternLayout
log4j.appender.WEB.layout.ConversionPattern=%p %t %c - %m%n
#log4j.appender.WEB.layout.ConversionPattern=[%-5p] %d{HH:mm:ss} [%c] [time: %r] - %m%n
#log4j.logger.org.apache.catalina=DEBUG, R

log4j.logger.org.apache.catalina.core=INFO
log4j.logger.org.apache.catalina.session=INFO
log4j.logger.org.apache.jasper.compiler=INFO

 

 

 

# 로그 포멧 정리

로그자체를 어떤 포맷으로 남길지 결정합니다.
layout에는 HTMLLayout, PatternLayout, SimpleLayout, XMLLayout등이 있으며 PatternLayout이 일반적으로 가장 많이 쓰입니다.

형식 설명
%p debug, info, warn, error, fatal 등의 priority 가 출력된다.
%m 로그내용이 출력됩니다
%d 로깅 이벤트가 발생한 시간을 기록합니다.
포맷은 %d{HH:mm:ss, SSS}, %d{yyyy MMM dd HH:mm:ss, SSS}같은 형태로 사용하며 SimpleDateFormat에 따른 포맷팅을 하면 된다
%t 로그이벤트가 발생된 쓰레드의 이름을 출력합니다.
%% % 표시를 출력하기 위해 사용한다.
%n 플랫폼 종속적인 개행문자가 출력된다. \r\n 또는 \n 일것이다.
%c 카테고리를 표시합니다
예) 카테고리가 a.b.c 처럼 되어있다면 %c{2}는 b.c가 출력됩니다.
%C 클래스명을 포시합니다.
예) 클래스구조가 org.apache.xyz.SomeClass 처럼 되어있다면 %C{2}는 xyz.SomeClass 가 출력됩니다
%F 로깅이 발생한 프로그램 파일명을 나타냅니다.
%l 로깅이 발생한 caller의 정보를 나타냅니다
%L 로깅이 발생한 caller의 라인수를 나타냅니다
%M 로깅이 발생한 method 이름을 나타냅니다.
%r 어플리케이션 시작 이후 부터 로깅이 발생한 시점의 시간(milliseconds)
%x 로깅이 발생한 thread와 관련된 NDC(nested diagnostic context)를 출력합니다.
%X 로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context)를 출력합니다.

예시) (같은 색끼리 보시면 됩니다)

위의 test.jsp를 다음 포맷으로 출력해본다면

[%c] [%C] [%d] [%F] [%l] [%L] [%m] [%M] [%n] [%p] [%r] [%t] [%x] [%X]는 다음과 같다

[test.jsp] [org.apache.jsp.test_jsp] [2005-03-10 12:37:23,561] [test_jsp.java] [org.apache.jsp.test_jsp._jspService(test_jsp.java:64)] [64] [fatal!!] [_jspService] [개행] [FATAL] [765567] [http-8080-Processor25] [] []

 

'백엔드기술 > 개발언어' 카테고리의 다른 글

jackson 라이브러리  (0) 2012.10.23
HTTPS 로그인 기반 웹수집 샘플 코드  (1) 2012.08.01
JAVA 7 기능  (0) 2012.04.20