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

来源:互联网 发布:为什么开不了淘宝店 编辑:程序博客网 时间:2024/05/21 13:54

log4j2可灵活的将日志打印在控制台、通过SMTP邮件发送、记录至文件、保存至数据库。本文介绍如何配置log4j2将日志记录至数据库


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


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;


配置 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>


其中 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();


然后指派您需要记录的日志,使用 databaseAppender 即可:


<logger name="SYSLOG" level="INFO" additivity="false">
      <appender-ref ref="databaseAppender"/> 
</logger>


0 0
原创粉丝点击