log4j日志存儲到數據庫


一、前提條件

      系統必須是使用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了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM