一、前提條件
系統必須是使用LOG4J進行日志管理,否則方法無效。
系統必須包含commons-logging-xxx.jar,log4j-xxx.jar這兩個JAR包,XXX為版本號。
二、操作步驟
1、創建日志表
要把日志持久化,必須在數據庫中創建一張用來存儲日志信息的表,表內字段為日志
的一個主要屬性包括:操作類,執行方法,打印時間,日志級別,日志內容。
CREATE TABLE `reslog` ( `LOGID` int(20) NOT NULL AUTO_INCREMENT, `CLASS` varchar(200) DEFAULT NULL, `METHOD` varchar(100) DEFAULT NULL, `CREATETIME` date DEFAULT NULL, `LOGLEVEL` varchar(50) DEFAULT NULL, `MSG` varchar(4000) DEFAULT NULL, PRIMARY KEY (`LOGID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
因為存儲的類為類的全部路徑,所以CLASS字段長度需要比較大。
2、日志管理配置
LOG4J主要有兩種配置文件.properties和.xml,這里以properties文件為基礎來講
述,關於XML文件的配置,相信大家看完下面的介紹也一樣能輕松完成。
通常在LOG4J.PROPERTIES文件的第一行是:
log4j.rootLogger= XXX,這句是控制日志的輸出,如果想吧日志輸出到數據庫,
則需要在XXX中添加“database”,如log4j.rootLogger=INFO,stdout,database。上面
這句就是把日志中級別為INFO的信息輸出到STDOUT和database中。
配置好如上的信息,LOG4J就知道用戶是想把信息存入數據庫,接下來我們就要來
配置數據庫的相關信息(包括緩存,數據庫連接信息,和執行SQL),配置信息如下:
log4j.appender.database=org.apache.log4j.ConsoleAppender log4j.appender.database.layout=org.apache.log4j.PatternLayout log4j.appender.database.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender log4j.appender.database.driver=com.mysql.jdbc.Driver log4j.appender.database.URL=jdbc:mysql://127.0.0.1:3306/tax_sjz?useUnicode=true&characterEncoding=UTF-8 log4j.appender.database.user=root log4j.appender.database.password=123456 log4j.appender.database.sql=insert into reslog (class,method,createtime,loglevel,msg) VALUES ('%C','%M','%d{yyyy-MM-dd hh:mm:ss}','%p','%m') log4j.appender.database.layout=org.apache.log4j.PatternLayout
log4j的配置中不允許有空格出現,
如果系統中的部分組件打印信息中包含"'"(單引號),系統會報“確實逗號”的錯誤,搞了半天也解決不了,還好打印的都是INFO,把打印級別設為“WARN”就OK了