Logback配置

1.logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
    <!-- <property name="LOG_HOME" value="/test/log" /> -->
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{150} -
                %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <FileNamePattern>/Users/swd/TestWeb.log.%d{yyyy-MM-dd}.log
            </FileNamePattern>
            <!--日志文件保留天数 -->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{150} -
                %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小 -->
        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!--日志异步到数据库 -->
    <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">    
            <dataSource class="org.apache.tomcat.jdbc.pool.DataSource">         <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                <url>jdbc:mysql://127.0.0.1:3306/logtest</url>
                <username>root</username>
                <password>mysql</password>
            </dataSource>
        </connectionSource>
    </appender>

    <!--myibatis log configure -->
    <logger name="com.apache.ibatis" level="TRACE" />
    <logger name="java.sql.Connection" level="DEBUG" />
    <logger name="java.sql.Statement" level="DEBUG" />
    <logger name="java.sql.PreparedStatement" level="DEBUG" />


    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <appender-ref ref="DB" />
    </root>

</configuration>

2.如果想把日志异步到数据库(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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值