【问题标题】:Logback Log to DB no Exception but doesn't workLogback 记录到数据库没有异常但不起作用
【发布时间】:2020-07-07 09:37:00
【问题描述】:

我正在尝试使用 Logback 查看数据库和控制台。

基于the documention 我需要这些表:

CREATE TABLE mybb.logging_event (
    timestamp BIGINT,
    formatted_message TEXT,
    logger_name VARCHAR(255),
    level_string VARCHAR(255),
    reference_flag SMALLINT,
    caller_filename VARCHAR(255),
    caller_class VARCHAR(255),
    caller_method VARCHAR(255),
    caller_line CHAR,
    event_id INT
);

CREATE TABLE mybb.logging_event_property  (
    event_id INT,
    mapped_key VARCHAR(255),
    mapped_value TEXT
);

CREATE TABLE mybb.logging_event_exception (
    event_id INT,
    i SMALLINT,
    trace_line VARCHAR(255)
);

基于this post,我需要这个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.mariadb.jdbc.Driver</driverClass>
            <url>jdbc:mariadb://localhost:3306/mybb</url>
            <user>root</user>
            <password>root</password> <!-- no password -->
        </connectionSource>
    </appender>

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

ConsoleAppender 有效,但 DBAppender 根本无效。控制台或其他东西没有例外 - 数据库是空的。我错过了什么?

【问题讨论】:

    标签: java sql mariadb logback


    【解决方案1】:

    我使用的文档似乎已经过时了。经过长时间查看正确的回购后,我在这里发现了这个美丽:

    # Logback: the reliable, generic, fast and flexible logging framework.
    # Copyright (C) 1999-2010, QOS.ch. All rights reserved.
    #
    # See http://logback.qos.ch/license.html for the applicable licensing 
    # conditions.
    
    # This SQL script creates the required tables by ch.qos.logback.classic.db.DBAppender.
    #
    # It is intended for MySQL databases. It has been tested on MySQL 5.1.37 
    # on Linux
    
    
    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;
    
    

    有了它,它就像一个魅力。如果其他人需要不同数据库的脚本,这里是链接:https://github.com/qos-ch/logback/blob/master/logback-classic/src/main/resources/ch/qos/logback/classic/db/script/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-27
      • 2014-05-19
      • 2013-08-08
      • 2016-03-11
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多