위키백과(우리 모두의 백과사전) -- 인용
아파치 log4j
개발자 | 아파치 소프트웨어 재단 |
최근 버전 | 1.2.15 / 2007년 9월 29일 |
운영체제 | 크로스 플랫폼 |
라이선스 | 아파치 2.0 라이선스 |
웹사이트 | http://logging.apache.org/log4j |
log4j는 자바기반 로깅 유틸리티이다. 디버그용 도구로 주로 사용되고 있다.
log4j의 최근 버전에 의하면 높은 등급에서 낮은 등급으로의 6개 로그 레벨을 가지고 있다.
설정 파일에 대상별(자바에서는 패키지)로 레벨을 지정이 가능하고 그 등급 이상의 로그만 저장하는 방식이다.
6개의 로그 레벨
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
[출처]http://kjunine.net/tag/log4j.properties
Logger
Log Message를 출력하는 방식을 분류하는 단위
Class 혹은 Package 단위로 Logger를 나눌 수 있어요.
그리고 출력할 Log Message의 Level을 지정할 수 있어요.
Appender
Log Message를 실제로 출력하는 녀석
Console, File, DB 등에 Log Message를 출력할 수 있어요.
각 Logger마다 다른 Appender를 설정해서
Class 혹은 Package 별로 다른 출력 방식을 적용할 수 있어요.
Layout
Log Message의 형태
Text, HTML 등의 형태로 Log Message를 출력할 수 있어요.
log4j.properties 설정
# Root Logger
log4j.rootLogger=INFO
# 바로 위처럼 Root Logger에 어떤 Appender도 설정하지 않으면 Root Logger는 Log Message를 출력하지 않아요.
# Console에서조차 다른 Package의 Log Message에는 관심이 없다면 위와 같이 해요. ^^/
# Custom Logger
log4j.logger.kjunine.test=INFO, console
# kjunine.test Package 하위의 Class에서만 Log Message를 출력해요.
log4j.logger.kjunine.test.sample_1=INFO, file-1
log4j.logger.kjunine.test.sample_2=INFO, file-2
# 각 Package 마다 다른 Appender를 적용시켜서 Package 별로 다른 파일에 Log Message를 출력해요.
# Console Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n
# File Appender
log4j.appender.file-1=org.apache.log4j.RollingFileAppender
log4j.appender.file-1.File=test-1.log
log4j.appender.file-1.MaxFileSize=10MB
log4j.appender.file-1.MaxBackupIndex=10
log4j.appender.file-1.layout=org.apache.log4j.PatternLayout
log4j.appender.file-1.layout.ConversionPattern=%d %p [%c] - %m%n
# File Appender
log4j.appender.file-2=org.apache.log4j.RollingFileAppender
log4j.appender.file-2.File=test-2.log
log4j.appender.file-2.MaxFileSize=10MB
log4j.appender.file-2.MaxBackupIndex=10
log4j.appender.file-2.layout=org.apache.log4j.PatternLayout
log4j.appender.file-2.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.rootLogger=INFO
# 바로 위처럼 Root Logger에 어떤 Appender도 설정하지 않으면 Root Logger는 Log Message를 출력하지 않아요.
# Console에서조차 다른 Package의 Log Message에는 관심이 없다면 위와 같이 해요. ^^/
# Custom Logger
log4j.logger.kjunine.test=INFO, console
# kjunine.test Package 하위의 Class에서만 Log Message를 출력해요.
log4j.logger.kjunine.test.sample_1=INFO, file-1
log4j.logger.kjunine.test.sample_2=INFO, file-2
# 각 Package 마다 다른 Appender를 적용시켜서 Package 별로 다른 파일에 Log Message를 출력해요.
# Console Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n
# File Appender
log4j.appender.file-1=org.apache.log4j.RollingFileAppender
log4j.appender.file-1.File=test-1.log
log4j.appender.file-1.MaxFileSize=10MB
log4j.appender.file-1.MaxBackupIndex=10
log4j.appender.file-1.layout=org.apache.log4j.PatternLayout
log4j.appender.file-1.layout.ConversionPattern=%d %p [%c] - %m%n
# File Appender
log4j.appender.file-2=org.apache.log4j.RollingFileAppender
log4j.appender.file-2.File=test-2.log
log4j.appender.file-2.MaxFileSize=10MB
log4j.appender.file-2.MaxBackupIndex=10
log4j.appender.file-2.layout=org.apache.log4j.PatternLayout
log4j.appender.file-2.layout.ConversionPattern=%d %p [%c] - %m%n