Spring Boot将日志记录到MySQL数据库

6
1个回答

7
我读了Spring Boot文档,但是没有看到与日志数据库相关的配置。因为Spring Boot将该功能移交给日志框架 (slf4j + logback/log4j 等)。所以您需要相应地配置日志框架,使用其配置文件 (例如:logback.xml、logback-spring.xml、logback.groovy 等)。Spring Boot中默认的日志框架是slf4j+logback。因此,请查看如何使用DBAppender。

对于Logback

https://logback.qos.ch/manual/appenders.html#DBAppender http://learningviacode.blogspot.com/2014/01/writing-logs-to-database.html 使用LogBack将日志记录到数据库 https://medium.com/@chakrar27/storing-log-data-in-postgresql-using-logback-db-appender-292891a9918

1. 创建logback.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
            </pattern>
        </encoder>
    </appender>
    <appender name="db" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource
            class="ch.qos.logback.core.db.DriverManagerConnectionSource">
            <driverClass>org.postgresql.Driver</driverClass>
            <url>jdbc:postgresql://localhost:5432/simple</url>
            <user>postgres</user>
            <password>root</password> <!-- no password -->
        </connectionSource>
    </appender>

    <!-- the level of the root level is set to DEBUG by default. -->
    <root level="TRACE">
        <appender-ref ref="stdout" />
        <appender-ref ref="db" />
    </root>
</configuration>

2. 创建3张表

logging_event

logging_event_property

logging_event_exception

在使用DBAppender之前,这些表必须存在。

对于Log4J

https://logging.apache.org/log4j/2.x/manual/appenders.html#JDBCAppender

对于Log4J2

http://smasue.github.io/log4j2-spring-database-appender


1
{btsdaf} - Krish
你的连接字符串必须是合法的,否则可能会出现“方言”错误。在调试方言问题之前,请确保你的连接字符串是正确/有效的。 #吃过亏了 - granadaCoder
是的,相比我见过的其他框架,自定义logback要困难得多。 - granadaCoder
我在 logback-classic-1.2.3.jarpostgresql.sql 中找到了数据库表的脚本。完整的文件夹路径为 logback-classic-1.2.3.jar!\ch\qos\logback\classic\db\script\ - FourtyTwo
logback.xml文件应该创建在资源文件夹还是项目根目录? - Arya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接