文章目录
- 添加依赖
- 导入 SQL 文件
- 配置 logback-spring.xml
- 运行结果
Logback 是一个开源的日志框架,它支持多种日志输出方式,包括控制台输出、文件输出、邮件输出等。如果要将 Logback 输出的日志保存到 MySQL 数据库中,可以按照以下步骤进行配置:
- 添加 MySQL 数据库依赖
- 创建数据库表
- 配置 Logback.xml 文件
- 测试
添加依赖
添加 MySQL 数据库依赖:
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
导入 SQL 文件
找到 logback-classic/ch/qos/logback/classic/db/script
文件夹下的 sql 文件,导入数据库:
导入数据库之后会在库中创建三个表:
MySQL 的 sql 文件如下,创建数据库,导入即可:
BEGIN;
DROP TABLE IF EXISTS logging_event_property;
DROP TABLE IF EXISTS logging_event_exception;
DROP TABLE IF EXISTS logging_event;
COMMIT;
BEGIN;
CREATE TABLE logging_event
(
timestmp BIGINT NOT NULL,
formatted_message TEXT NOT NULL,
logger_name VARCHAR(254) NOT NULL,
level_string VARCHAR(254) NOT NULL,
thread_name VARCHAR(254),
reference_flag SMALLINT,
arg0 VARCHAR(254),
arg1 VARCHAR(254),
arg2 VARCHAR(254),
arg3 VARCHAR(254),
caller_filename VARCHAR(254) NOT NULL,
caller_class VARCHAR(254) NOT NULL,
caller_method VARCHAR(254) NOT NULL,
caller_line CHAR(4) NOT NULL,
event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
COMMIT;
BEGIN;
CREATE TABLE logging_event_property
(
event_id BIGINT NOT NULL,
mapped_key VARCHAR(254) NOT NULL,
mapped_value TEXT,
PRIMARY KEY(event_id, mapped_key),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
COMMIT;
BEGIN;
CREATE TABLE logging_event_exception
(
event_id BIGINT NOT NULL,
i SMALLINT NOT NULL,
trace_line VARCHAR(254) NOT NULL,
PRIMARY KEY(event_id, i),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
COMMIT;
配置 logback-spring.xml
要使用 Logback 的 DBAppender,需要更改 Logback 的配置文件以引入 DBAppender,并配置连接数据库的相关参数。
以下是一个简单的 Logback 配置文件示例,使用 MySQL 作为数据库:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志输出 MySQL -->
<appender name="MYSQL" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<!--数据库驱动-->
<driverClass>com.mysql.cj.jdbc.Driver</driverClass>
<!--数据库 Url-->
<url>jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</url>
<!--数据库用户名-->
<user>root</user>
<!--数据库密码-->
<password>root</password>
</connectionSource>
</appender>
<!--系统操作日志-->
<root level="info">
<!--appender将会添加到logger-->
<appender-ref ref="MYSQL"/>
</root>
</configuration>
其中,DBAppender
是 Logback 提供的一个 Appender,可以把日志信息保存到数据库中。DriverManagerConnectionSource
是数据库连接的配置信息,其他参数根据实际情况修改。
运行结果
编写方法,输出日志:
public static void main(String[] args) {
logger.info("日志测试");
logger.trace("日志测试");
logger.error("日志测试1");
logger.error("日志测试2");
logger.error("日志测试3");
}
配置完成后,启动应用程序,可以在 MySQL 数据库中看到生成的日志信息。