Log4j日誌系統,將日誌信息記錄到數據庫中。

 

使用的Log4j的jar包:  log4j-1.2.17.jar                   

數據庫環境:   Mysql數據庫       

 

我的Java項目目錄結構如下圖圖一所示:

                                                                                    圖一

 

在Mysql數據庫中建立數據庫 log4j,格式爲UTF-8。在 log4j數據庫中建立數據庫表 logs . logs建表語句如下:

CREATE TABLE `logs` (
  `USER_ID` varchar(64) NOT NULL,
  `DATED` datetime DEFAULT NULL,
  `LOGGER` varchar(50) NOT NULL,
  `LEVEL` varchar(10) NOT NULL,
  `MESSAGE` varchar(1000) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

log4j.properties的配置信息如下所示:


# log4j日誌系統: 將日誌內容插入到數據庫中     
# Define the root logger with appender file 
log4j.rootLogger=DEBUG, DB, console

# Define the DB appender 
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender 

# Set JDBC URL 
# log4j.appender.DB.URL=jdbc:mysql://127.0.0.1/log4j?useUnicode=true&characterEncoding=utf8
log4j.appender.DB.URL=jdbc:mysql://127.0.0.1/log4j


# Set Database Driver
log4j.appender.DB.driver=com.mysql.jdbc.Driver

# Set DataBase user name and password
log4j.appender.DB.user=root
log4j.appender.DB.password=123456

# Set the SQL statement to be executed.
log4j.appender.DB.sql=INSERT INTO logs(USER_ID, DATED, LOGGER, LEVEL, MESSAGE) VALUES('%d{yyyy-MM-dd HH:mm:ss SSS}', '%d{yyyy-MM-dd HH:mm:ss}', '%C', '%p', '%m') 
# log4j.appender.DB.sql=INSERT INTO logs VALUES('%x', '%d{yyyy-MM-dd HH:mm:ss}', '%C', '%p', '%m') 


# Define the layout for file appender 
log4j.appender.DB.layout=org.apache.log4j.PatternLayout 


# 將日誌輸出到控制檯
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]-[%t]-[%F:%L]-[%p]-[%c]-%m%n
log4j.appender.console.encoding=UTF-8 




 

在Java代碼中,建立一個 LogMysqlRun 文件,代碼如下所示:           

package com.moon.log4j.main;

import org.apache.log4j.Logger;

/**
  * 將日誌信息插入到數據庫表中。
 * 
 * @author moon  2019/05/13  10:03  
 *
 */
public class LogMysqlRun {
	
	private static Logger log = Logger.getLogger(LogMysqlRun.class); 
	
	public static void main(String[] args) {
		
		log.debug("This is logger debug message.");
		log.info("This is logger info message.");
		
		System.out.println("---------------------- log4j-1.Xjar包測試完成 ----------------------");
	}
	
}


 

        運行 LogMysqlRun.java 中的 main函數後,運行結果如下圖圖二、圖三所示:

                                                                                     圖二

 

                                                                                                    圖三

 

 

參考文章:   Log4j日誌記錄到數據庫 , 需要注意的是,這篇文章中一些地方有小Bug! (^__^)                     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章