zoukankan      html  css  js  c++  java
  • mySql---logback日志写入数据库(mysql)配置

    如题  建议将日志级别设置为ERROR。这样可以避免存储过多的数据到数据中。

    1  logback 配置文件(如下)

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration scan="true">
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
                </pattern>
            </encoder>
        </appender>
        <!-- 将日志写入日志文件 -->
        <appender name="FILE" class="ch.qos.logback.core.FileAppender">
            <file>${catalina.base}/logs/cnsurvey-order-ws.log</file>
            <append>true</append><!-- 日志追加 -->
            <encoder>
                <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
                </pattern>
            </encoder>
        </appender>
        <!-- 将日志写入数据库 -->
        <appender name="DB-CLASSIC-MYSQL-POOL" class="ch.qos.logback.classic.db.DBAppender">  
            <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">  
                <dataSource class="org.apache.commons.dbcp.BasicDataSource">  
                    <driverClassName>com.mysql.jdbc.Driver</driverClassName>  
                    <url>jdbc:mysql://localhost:3306/cbs_ifs_order?characterEncoding=UTF-8</url>  
                    <username>root</username>  
                    <password>root</password>  
                </dataSource>  
            </connectionSource>  
        </appender> 
        <root level="ERROR">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="FILE" />
            <appender-ref ref="DB-CLASSIC-MYSQL-POOL" />  
        </root>
    </configuration> 

     如果想让日志写入到数据库中,必须手动添加额外的数据库表(mysql 测试)。如果mysql 中没有指定表,则不会写数据。

     表结构如下

    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;

     将日志设置为ERROR 级别。会自动将ERROR 界别的错误信息 ,插入到数据库中

    参考:
    http://logback.qos.ch/manual/appenders.html

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

    http://blog.csdn.net/jiaincs/article/details/5686287#

  • 相关阅读:
    Flutter-动画-原理篇
    Flutter-动画-实践篇
    Flutter-动画-概念篇
    Android-textview图文混排(网络图片)
    Android--解决图片保存到相册显示1970年1月1日 8:00的问题
    Android--使用JobService实现进程保活
    Android--获取手机联系人和Sim卡联系人
    git 代码服务器的网页版gitweb的搭建
    Android 内存管理中的 Shallow heap Retained heap
    欧几里德算法----最大公约数算法
  • 原文地址:https://www.cnblogs.com/chihirotan/p/6185547.html
Copyright © 2011-2022 走看看