log4j將日誌輸出到資料庫

maqianmaqian發表於2010-08-07

 

廢話沒有,就4個步驟,按照說明配置就行了。一點技術含量也沒有.大家可以根據自己的應用
a修改輸出的格式
b修改資料庫的欄位及修改插入的資料庫sql語句
c其他資料的的使用方式,參照我下面的例子搞,我就不信你搞不出來^-^
1)2個jar包
mysql-connector-java-5.1.13-bin.jar
log4j-1.2.16.jar

2)配置檔案(放在src下)
只需要appender3就可以輸出到資料庫, appender1,appender2也順便給出大家吧
檔名:log4j.properties

log4j.rootLogger=INFO,appender1,appender2,appender3
# 控制檯輸出
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
# 檔案輸出,這裡預設為追加方式
log4j.appender.appender2=org.apache.log4j.FileAppender
log4j.appender.appender2.File=log/IceColdMonitor.log
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
# 資料庫輸出
log4j.appender.appender3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.appender3.driver=com.mysql.jdbc.Driver
log4j.appender.appender3.URL=jdbc:mysql://127.0.0.1:3306/test
log4j.appender.appender3.user=root
log4j.appender.appender3.password=test
log4j.appender.appender3.sql=insert into log_icecoldmonitor(level,category,thread,time,location,note) values('%p','%c','%t','%d{yyyy-MM-dd HH:mm:ss:SSS}','%l','%m')
log4j.appender.appender3.layout=org.apache.log4j.PatternLayout

3)資料庫程式碼
Sql程式碼 複製程式碼
  1. CREATE TABLE `log_icecoldmonitor` (   
  2.   `Id` int(11) NOT NULL AUTO_INCREMENT,   
  3.   `levelvarchar(255) NOT NULL DEFAULT '' COMMENT '優先順序',   
  4.   `category` varchar(255) NOT NULL DEFAULT '' COMMENT '類目',   
  5.   `thread` varchar(255) NOT NULL DEFAULT '' COMMENT '程式',   
  6.   `timevarchar(30) NOT NULL DEFAULT '' COMMENT '時間',   
  7.   `location` varchar(255) NOT NULL DEFAULT '' COMMENT '位置',   
  8.   `note` text COMMENT '日誌資訊',   
  9.   PRIMARY KEY (`Id`)   
  10. )  
CREATE TABLE `log_icecoldmonitor` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `level` varchar(255) NOT NULL DEFAULT '' COMMENT '優先順序',
  `category` varchar(255) NOT NULL DEFAULT '' COMMENT '類目',
  `thread` varchar(255) NOT NULL DEFAULT '' COMMENT '程式',
  `time` varchar(30) NOT NULL DEFAULT '' COMMENT '時間',
  `location` varchar(255) NOT NULL DEFAULT '' COMMENT '位置',
  `note` text COMMENT '日誌資訊',
  PRIMARY KEY (`Id`)
)

4)測試類
Java程式碼 複製程式碼
  1. package phl.com;   
  2. import org.apache.log4j.Logger;   
  3.   
  4. public class Test {   
  5.   
  6.     public static void main(String[] args) {   
  7.         Logger logger = Logger.getLogger(Test.class);   
  8.         logger.info("good");   
  9. logger.debug("success");   
  10.     }   
  11. }  

相關文章