使用Log4j輸出日誌至資料庫

maqianmaqian發表於2010-08-07

首先建立一資料庫表說明:

欄位 描述
GUID 流水號
DATE 時間
THREAD 當前執行緒
LEVEL 當前級別
CLASS 當前java程式/方法
MESSAGES 當前輸出資訊
   

log4j.properties如下配置:

<!--StartFragment -->

 

log4j.rootLogger=DEBUG,CONSOLE,DATABASE

 

log4j.addivity.org.apache=true

 

########################

 

# JDBC Appender

 

#######################

 

log4j.appender.DATABASE.Threshold=INFO

 

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender

 

#log4j.appender.DATABASE.BufferSize=10

 

log4j.appender.DATABASE.URL=you jdbcurl

 

log4j.appender.DATABASE.driver=you jdbc driver

 

log4j.appender.DATABASE.user=

 

log4j.appender.DATABASE.password=

 

log4j.appender.DATABASE.sql=INSERT INTO YOU_LOG_TABLE  VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')

 

log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout

<!--StartFragment --> 

下面我們對“%d %t %p %l %m %n”一一講解:

 

l         %d輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyyy-MM-dd HH:mm:ss},輸出類似:2005-7-19 17:49:27,剛好適合插入SQLServer

 

l         %t  產生該日誌事件的執行緒名

 

l         %p 日誌的log_level,如DEBUGWARN或者INFO

 

l         %c  輸出所屬的類目,通常就是所在類的全名,如“iNotes.Default”;

 

l         %m 日誌的內容;

 

l         %l  輸出日誌事件的發生位置,包括類目名、發生的執行緒,以及在程式碼中的行數。如write2database.main(write2database.java:33)

 

l         %n  輸出一個回車換行符,Windows平臺為“ ”,Unix平臺為“

相關文章