将Logger的数据导入到数据库详解

昨天公司说要在系统中添加日志查询统计功能,刚开始第一个念头就是用IO流读取日志文件,然后持久化,最后在系统中查询。结果看了一些LOG4J的说明文档后发现,原来LOG4J本身就有将日志信息存入数据库功能,这样就大大节省了开发的时间。现在把方法记录下来,希望对有需要的朋友有所帮助。
一、前提条件
      系统必须是使用LOG4J进行日志管理,否则方法无效。
      系统必须包含commons-logging-xxx.jar,log4j-xxx.jar这两个JAR包,XXX为版本号。
二、操作步骤
      1、创建日志表
           要把日志持久化,必须在数据库中创建一张用来存储日志信息的表,表内字段为日志的一个主要属性包括:操作类,执行方法,打印时间,日志级别,日志内容。
           CREATE TABLE RESLOG (
LOGID VARCHAR2(20) NOT NULL,
                                                 CLASS VARCHAR2(200),
                                                 METHOD VARCHAR2(100),
                                                 CREATETIME DATE,
                                                 LOGLEVEL VARCHAR2(50),
                                                 MSG VA
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用Log4j或Logback等日志框架来记录日志,并且这些日志框架都支持将日志存储到数据库中。下面以Log4j2为例,介绍如何将日志记录到数据库。 1. 添加依赖 在项目中添加Log4j2的依赖,以及将日志记录到数据库所需的数据库驱动依赖。例如: ```xml <!-- log4j2依赖 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version> </dependency> <!-- 将日志存储到数据库所需的数据库驱动依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> ``` 2. 配置Log4j2 在项目中添加log4j2.xml配置文件,并进行相应的配置,例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <!-- 将日志存储到数据库中的Appender --> <Jdbc name="databaseAppender" tableName="log_table"> <ConnectionFactory class="com.mysql.cj.jdbc.MysqlDataSource"> <param name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false"/> <param name="user" value="root"/> <param name="password" value="123456"/> </ConnectionFactory> <Column name="eventDate" isEventTimestamp="true"/> <Column name="level" pattern="%level"/> <Column name="logger" pattern="%logger"/> <Column name="message" pattern="%message"/> </Jdbc> <!-- 控制台输出日志的Appender --> <Console name="console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="console"/> <AppenderRef ref="databaseAppender"/> </Root> </Loggers> </Configuration> ``` 上述配置中,使用Jdbc Appender将日志记录到数据库中,需要指定数据库连接信息、表名以及需要记录的字段等。 3. 使用日志框架记录日志 在Java代码中,使用log4j2记录日志,例如: ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class LogTest { private static final Logger logger = LogManager.getLogger(LogTest.class); public static void main(String[] args) { logger.info("Hello, world!"); } } ``` 上述代码中,使用LogManager获取Logger对象,并使用Logger对象记录日志。日志信息会同时输出到控制台和数据库中。 以上就是将日志记录到数据库的简单实现方法,当然具体实现还需根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值