Log4j 的 JDBCAppender 配置
https://www.bilibili.com/video/BV1iJ411H74S?p=16
建表
CREATE TABLE `log4j`.`log` (
`log_id` INT NOT NULL AUTO_INCREMENT,
`project_name` VARCHAR(255) NULL COMMENT '项目名',
`create_date` VARCHAR(255) NULL COMMENT '创建时间',
`level` VARCHAR(255) NULL COMMENT '优先级',
`category` VARCHAR(255) NULL COMMENT '所在类的全名',
`file_name` VARCHAR(255) NULL COMMENT '输出日志消息产生时所在的文件名称',
`thread_name` VARCHAR(255) NULL COMMENT '日志事件的线程名',
`line` VARCHAR(255) NULL COMMENT '行号',
`all_category` VARCHAR(255) NULL COMMENT '日志事件的发生位置',
`message` VARCHAR(4000) NULL COMMENT '输出代码中的指定的消息',
PRIMARY KEY (`log_id`));
pom.xml 中加入依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
log4j.properties
# 指定 RootLogger 顶级父元素默认配置信息
# 指定日志级别=trace,使用的 appender 为 console
log4j.rootLogger = trace,logDB
#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 = 123456
log4j.appender.logDB.sql = INSERT INTO log ( project_name , create_date , level , category , file_name , thread_name , line , all_category , message ) \
VALUES ( 'log4j-demo', '%d{yyyy-MM-dd HH:mm:ss}', '%p', '%c', '%F', '%t', '%L', '%l', '%m')
注意
properties 里的 sql 太长了用“\”换行