- 작성시간 : 2010/02/04 15:51
- 퍼머링크 : slog2.egloos.com/3574039
- 덧글수 : 1
이 글과 PDF 첨부파일을 같이 보시기를.. Log4jQuickRef.pdf
1. log4j 설치
http://www.apache.org/ – Logging – log4j 1.2 – Download – apache-log4j-1.2.15.zip
파일을 받아 압축풀어 JAR 파일(log4j-1.2.15.jar)을 프로젝트의 WEB-INFlib 폴더에 넣습니다
2. log4j 설정 – 콘솔 출력
WEB-INFclasses 에 log4j.properties 파일을 추가합니다
# Global logging configuration – 전역 리포팅 레벨 설정
log4j.rootLogger=ERROR, stdout
# SqlMap logging configuration… – SqlMap 리포팅 레벨 설정
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
# Console output.. – console 출력 설정
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] -%m%n
log4j.rootLogger=ERROR, stdout
이 내용은 log4j의 리포팅 레벨 기본 설정입니다
ERROR 가 리포팅 레벨이고 stdout은 로그를 남기는 appender 입니다
리포팅 레벨이란 로그를 기록하는 기준?범위?입니다
ERROR 는 에러가 발생했을 경우에만 로그를 남기고
DEBUG 는 항상 로그를 남기게 됩니다.
이것 외에도 여러가지가 있습니다. PDF 파일 참조 Log4jQuickRef.pdf
기본설정을 ERROR 로 하고 현재 SqlMap 관련 리포팅 레벨만 DEBUG로 정했기 때문에
평상시에는 SqlMap 관련 로그만 출력됩니다
SqlMap 로그 정보도 에러가 났을 때만 보고싶다면 아래 내용을 모두 주석하시면 됩니다
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
또한 기본설정을 DEBUG로 하게되면 SqlMap말고도 모든 로그가 나오게 됩니다 ( 응 ? )
무슨 내용이 나오는지는 직접 확인 하시길 ../ㅅ/
3. log4j 설정 – 콘솔+파일 출력
log4j.properties 파일을 다음과 같이하면 콘솔과 파일로 출력이 됩니다
# Global logging configuration – 전역 리포팅 레벨 설정
log4j.rootLogger=ERROR, stdout, logfile
# SqlMap logging configuration… – SqlMap 리포팅 레벨 설정
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
# Console output.. – 콘솔 appender 설정
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] -%m%n
# File output – 파일 appender 설정
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern=’.’yyyy-MM-dd
# 로그 파일 path
log4j.appender.logfile.File=c:/log/ibatis.log
# 파일 이어쓰기 여부 ( false 시 서버재시작하면 덮어씀 )
log4j.appender.logfile.Append=true
# 로그 layout 설정
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] – %m%n
리포팅레벨은 위에서 얘기했고
또 log4j 에서 기본적으로 알아야 할 것은 Appender(출력방식)와 Layout(출력내용) 인데
둘다 살펴 보겠습니다
4. Appender
1) ConsoleAppender : 말그대로 콘솔에 출력하는 방식으로 특별한 설정이 필요없습니다.. 있어도 무시
2) DailyRollingFileAppender : 시간을 주기로 파일을 생성하여 기록하는 방식입니다
DatePattern 으로 시간 단위를 설정 할 수 있습니다
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
#월단위 log4j.appender.logfile.DatePattern=’.’yyyy-MM
#주단위 log4j.appender.logfile.DatePattern=’.’yyyy-MM-ww
#12시간단위 log4j.appender.logfile.DatePattern=’.’yyyy-MM-dd-a
#시간단위 log4j.appender.logfile.DatePattern=’.’yyyy-MM-dd-HH
#분단위 log4j.appender.logfile.DatePattern=’.’yyyy-MM-dd-HH-mm
3) RollingFileAppender : 일정 용량만큼 파일에 쓰는 방식입니다
MaxFileSize 로 파일의 최대크기를 정합니다