使用log4jdbc記錄db log

log4jdbc可以用來查看實際執行的sql,記錄每條sql的執行時間,查看connection相關信息,總之想要記錄jdbc相關的log,都可以使用;

1. 下載log4jdbc: https://code.google.com/p/log4jdbc/downloads/list

2. 所需jar包:

log4j-xxx.jar
slf4j-api-xxx.jar
slf4j-log4j12-xxx.jar

3.配置:

1)將datasource的driverClass設置爲:net.sf.log4jdbc.DriverSpy

2)將db url的前綴由jdbc: 變成jdbc:log4jdbc:

e.g:

original:

jdbc:oracle:thin:@hostname:port:sid

current:

jdbc:log4jdbc:oracle:thin:@hostname:port:sid

3)update log4j.properties

e.g:

log4j.rootLogger=stdout,sqltiming,sql


# stdout is set to be a stdoutAppender.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}] - %m%n

log4j.appender.sql=org.apache.log4j.FileAppender
log4j.appender.sql.File=logs/sql.log
log4j.appender.sql.Append=false
log4j.appender.sql.layout=org.apache.log4j.PatternLayout
log4j.appender.sql.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}] %-5p[%t](%C:%L) -%m%n

#log4j.logger.jdbc.sqlonly=DEBUG,sql
#log4j.additivity.jdbc.sqlonly=false


log4j.logger.jdbc.sqltiming=DEBUG,sql
log4j.additivity.jdbc.sqltiming=false

log4j.logger.jdbc.resultset=INFO,sql
log4j.additivity.jdbc.resultset=false

log4j.logger.jdbc.audit=INFO,sql
log4j.additivity.jdbc.audit=false

log4j.logger.jdbc.connection=FATAL,sql
log4j.additivity.jdbc.connection=false


參考:

https://code.google.com/p/log4jdbc/

https://github.com/alewando/log4jdbc/blob/master/doc/log4j.properties

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章