深入理解 SpringBoot 日志框架:从入门到高级应用——(三)Logback 输出日志到 MySQL 数据库
文章目录
Logback 是一个开源的日志框架,它支持多种日志输出方式,包括控制台输出、文件输出、邮件输出等。如果要将 Logback 输出的日志保存到 MySQL 数据库中,可以按照以下步骤进行配置:
- 添加 MySQL 数据库依赖
- 创建数据库表
- 配置 Logback.xml 文件
- 测试
添加依赖
添加 MySQL 数据库依赖:
<dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> <version>8.0.27version>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 作为数据库:
<configuration> <appender name="MYSQL" class="ch.qos.logback.classic.db.DBAppender"> <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> <driverClass>com.mysql.cj.jdbc.DriverdriverClass> <url>jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8url> <user>rootuser> <password>rootpassword> connectionSource> appender> <root level="info"> <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 数据库中看到生成的日志信息。
来源地址:https://blog.csdn.net/qq_20185737/article/details/131238350
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341