[펌]iBatis 로그보기 – log4j 설정

iBatis 로그보기 – log4j 설정 iBatis

참고자료 : http://ibatis.apache.org/ – for Java – Documentation – Korean 

 

이 글과  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 로 파일의 최대크기를 정합니다

MaxBackupIndex 으로 파일최대갯수를 지정합니다. 만약 최대갯수까지 차면 처음의 로그파일에 재기록합니다
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.MaxFileSize=512KB
log4j.appender.logfile.MaxBackupIndex=3
 
그 외에도 FileAppender , net.SocketHubAppender .. 등 이 더 있지만 설명은 패스!  Log4jQuickRef.pdf  

 
5. Layout

간단한 설명만 하겠습니다. 출력 결과는 직접 찍어보시기 바랍니다~
 
1) PatternLayout : 패턴을 직접 정하는 방식입니다.. 보통 이 방식을 씁니다
ConversionPattern 으로 패턴을 정합니다 ( 자세한 내용은 PDF 파일 참조 Log4jQuickRef.pdf  )
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %r [%t] %-5p %c %x – %m%n
#log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] – %m%n
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] -%m%n
 
2) SimpleLayout : 말그대로 심플하게(?) 보여주는 방식입니다 시간도 안나옵니다.. -_-;
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
3) HTMLLayout : HTML테이블 형식으로 만들어줍니다 오오…. 디자인도 맘에 드는군요
log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout
4) TTCCLayout : 심플보다 좀 많이 나옵니다.. 근데 여기서도 시간은 안나오네여 OTL
log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout