使用的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! (^__^)