首页 > 技术文章 > springboot的logback的配置文件

hanzhe 2021-01-10 21:02 原文

之前敲出来一个 logback 的配置文件,防止以后找起来麻烦在这里存个档

  1. 修改了日志输出的内容
  2. 设置默认级别为 INFO
  3. 正常日志 ( TRACE 到 WARN ) 输出到单独的文件夹
  4. 异常日志 ( ERROR ) 输出到单独的文件夹
  5. 日志文件按天进行存储,每天都会新建日志文件
  6. 日志文件存储在当前项目目录下

配置文件命名为 logback-spring.xml 放到 resources 目录下会自动生效,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!--
    日志级别:TRACE < DEBUG < INFO < WARN < ERROR
    scan:当配置文件发生改变是否会自动加载,默认true
    scanPeriod:检查配置文件是否被改变的间隔时间,默认1分钟
    debug:是否打印logback内部的日志信息,默认false
-->
<configuration scan="true" scanPeriod="10 seconds" debug="false">
    <!-- 配置控制台日志输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 设置打印规则 -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!-- 【%d 时间】【%p 级别】【%c 所在类】【%m 所在函数】【%l 所在行】 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
        </layout>
    </appender>
    <!-- 配置文件日志输出——info -->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 如果检测到了ERROR日志就不输出,否则输出 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>accept</onMismatch>
        </filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>info/%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <!-- 配置文件日志输出——error -->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 控制输出级别为ERROR -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>error/%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <!-- 所有日志相关都要在root中注册,被注册的配置如果没有设置日志打印级别会默认会使用level -->
    <root level="INFO">
        <!-- 添加控制台的日志配置 -->
        <appender-ref ref="console" />
        <appender-ref ref="fileInfoLog" />
        <appender-ref ref="fileErrorLog" />
    </root>
</configuration>

推荐阅读