Monday, July 06, 2009

iBATIS의 JDBCAppender사용시 사용자 정보 추가 로깅법

 

iBATIS의 로깅기능으로 log4j를 주로 사용하는데...

 

일반적으로 로그 파일을 FIle로 저장하게 되는데 가끔... 로깅 정보를 DB로 저장을 원하는곳이

 

있다..

 

이때 사용하는것이 JDBCAppender이다... 첨부 파일 다운로드 하면된다.

 

JDBCAppender는 아래와 같으 Log4j에서 설정해주면 된다.

 

log4j.appender.dblog=org.apache.log4j.jdbcplus.JDBCAppender
log4j.appender.dblog.url=jdbc:oracle:thin:@접속정보:1521:SID
log4j.appender.dblog.dbclass=oracle.jdbc.driver.OracleDriver
log4j.appender.dblog.username=계정

log4j.appender.dblog.password=암호
log4j.appender.dblog.sql=INSERT INTO APP_LOG( SYSTEMNAME, LOGDATE, LOGLEVEL, MDC1,MDC2, MESSAGE, TROWABLE ) values ('MCSMGR',TIMESTAMP '@TIMESTAMP@','@PRIO@','@MDC:APP@','@NDC@','@MSG@','@THROWABLE@')
log4j.appender.dblog.layout=org.apache.log4j.PatternLayout
log4j.appender.dblog.layout.ConversionPattern=%m
log4j.appender.dblog.buffer=1
log4j.appender.dblog.commit=true
log4j.appender.dblog.quoteReplace=true
log4j.appender.dblog.throwableMaxChars=3000

 

위는 오라클 기준임... 그리고 appender를 loging되게하는 설정이 필요함 각자 알아서..

 

그리고 아래와 같이 테이블을 작성해 주면 된다.

 

CREATE TABLE "APP_LOG" (
  "SYSTEMNAME" VARCHAR2(100)
 ,"LOGDATE" DATE DEFAULT SYSDATE
 ,"LOGLEVEL" VARCHAR2(100)
 ,"MDC1" VARCHAR2(100)
 ,"MDC2" VARCHAR2(100)
 ,"MESSAGE" VARCHAR2(4000)
 ,"TROWABLE" VARCHAR2(4000)
)

그러면 DB의 테이블로 로그가 저장이 된다.

 

그리고 로깅시에 외부 설정 정보를 넣을려면... 얘를 들어 로그인한 사용자등등...

  MDC.put("APP", "테스트");

  db.queryForList("SAMPLE.SELECT");
  MDC.remove("APP");

 

 

MDC 또는 NDC를 설정하여 사용하면 된다. 자세한것은 아래 URL을 참고...

 

http://www.onjava.com/pub/a/onjava/2002/08/07/log4j.html?page=3

 

http://www.mail-archive.com/log4j-user@logging.apache.org/msg06998.html

 

No comments: