如何配置log4j2日志记录至数据库

如题所述

配置log4j2日志记录至数据库


1、建立用于保存日志的数据库表:

CREATE TABLE `sys_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `level` varchar(32) NOT NULL,
  `logger` varchar(100) NOT NULL,
  `message` varchar(1000) DEFAULT NULL,
  `exception` varchar(10000) DEFAULT NULL,
  `date_add` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4;

2、配置 databaseAppender :

<JDBC name="databaseAppender" tableName="sys_log">
      <ConnectionFactory class="cc.s2m.web.s2mBlog.util.StaticProp" method="getDatabaseConnection" />
      <Column name="date_add" isEventTimestamp="true" />
      <Column name="level" pattern="%level" />
      <Column name="logger" pattern="%logger" />
      <Column name="message" pattern="%message" />
      <Column name="exception" pattern="%ex{full}" />
    </JDBC>

3、其中 cc.s2m.web.s2mBlog.util.StaticProp ç±»çš„getDatabaseConnection方法为获取可用的datasource:

DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://127.0.0.1/s2mBlog?characterEncoding=utf8");
ds.setUsername("root");
ds.setPassword("123456");
return ds.getConnection();


4、指派需要记录的日志,使用 databaseAppender å³å¯ï¼š

<logger name="SYSLOG" level="INFO" additivity="false">
      <appender-ref ref="databaseAppender"/> 
</logger>
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答