logback 配置日志写入数据库中

来源:互联网 发布:linux虚拟机 cpu 编辑:程序博客网 时间:2024/05/29 07:37

项目要求将异常保存到数据库中,便于统计和追踪问题。

配置logback的DbAppender可以实现(项目使用MySQL数据库)

可以参考:

logback官网 : http://logback.qos.ch/manual/appenders.html


别人的博客 :

http://blog.csdn.net/kimsoft/article/details/16330869

http://blog.csdn.net/zavens/article/details/7983434

http://blog.csdn.net/zgmzyr/article/details/8267072


1、logback.xml 配置:

<!-- save the log to db -->

    <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource
            class="ch.qos.logback.core.db.DriverManagerConnectionSource">
            <driverClass>com.mysql.jdbc.Driver</driverClass>
            <url>jdbc:mysql://182.92.100.34:3306/allbuy</url>
            <user>allbuy</user>
            <password>123456</password>
        </connectionSource>
    </appender>
    <logger name="com.allbuy.payment" level="WARN">
        <appender-ref ref="DB" />

    </logger>


2、需要依赖的jar包:


 logback-access-1.0.0.jar

    logback-classic-1.0.0.jar

    logback-core-1.0.0.jar

    slf4j-api-1.6.0.jar

3、建表语句(总共有三张表,exception表不知道干嘛的)


建表SQL脚本在下载logback-classicjar包的 logback-classic-1.1.1.jar\ch\qos\logback\classic\db 目录下面;


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;



0 0
原创粉丝点击