1. 程式人生 > >利用log4j將記錄日誌儲存到Mysql資料庫方法及問題

利用log4j將記錄日誌儲存到Mysql資料庫方法及問題

1.首先是要在資料庫中建一張表

CREATE TABLE `log` (
  `log_id` int(11) NOT NULL AUTO_INCREMENT,
  `project_name` varchar(255) DEFAULT NULL COMMENT '目項名',
  `create_date` varchar(255) DEFAULT NULL COMMENT '建立時間',
  `level` varchar(255) DEFAULT NULL COMMENT '優先順序',
  `category` varchar(255) DEFAULT NULL COMMENT '所在類的全名'
, `file_name` varchar(255) DEFAULT NULL COMMENT '輸出日誌訊息產生時所在的檔名稱 ', `thread_name` varchar(255) DEFAULT NULL COMMENT '日誌事件的執行緒名', `line` varchar(255) DEFAULT NULL COMMENT '號行', `all_category` varchar(255) DEFAULT NULL COMMENT '日誌事件的發生位置', `message` varchar(4000) DEFAULT NULL COMMENT '輸出程式碼中指定的訊息'
, PRIMARY KEY (`log_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.設定好後,配置log4j的配置檔案,我這裡用的是properties檔案,輸出的資訊有點多,我也是拿人家的輸出語言(記得改資料庫配置)

#mysql
log4j.appender.logDB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDB.layout=org.apache.log4j.PatternLayout
log4j.appender.logDB.Driver=com.mysql.jdbc.Driver
log4j.appender.logDB.URL=jdbc:mysql://localhost:3306/log4j
log4j.appender.logDB.User=root
log4j.appender.logDB.Password=root
log4j.appender.logDB.Sql=INSERT INTO log(project_name,create_date,level,category,file_name,thread_name,line,all_category,message) values('\u6D4B\u8BD5','%d{yyyy-MM-ddHH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')

log4j.rootLogger=info,logDB

3.配置完成之後,就可以將資料存到資料庫,但是有時總是遇見一些奇怪的問題,例如這樣:系統提示資料庫驅動找不到,其實並不是這樣,我的驅動確實是存在的。
在這裡插入圖片描述

解決方法:

(如果沒有遇見就算了)將properties配置檔案裡面的每一句話的後面的空格去掉,就OJBK了,記住是行結束的位置的空格
在這裡插入圖片描述