SpringBoot集成slf4j+logback配置文件详解

 最近用SpringBoot搭了一个桌面应用,配置了slf4j+logback的日志模块,这里把相关配置放出来,希望可以帮助大家更好的了解logback.xml的配置

项目结构截图:

日志文件加载方式:

logback.xml配置内容及相关注释:

注意:Filter中onMismatch这个标签的含义

ACCEPT:大于filter对应日志级别的日志也需要打印

NEUTRAL:大于filter对应日志级别的日志交给下一个filter处理,如果当前是最后一个filter,默认打印

DENY:不打印除当前日志级别之外的其他日志。

常用日志级别:trace<debug<info<warn<error

<?xml version="1.0" encoding="UTF-8"?>
 <!--开启动态刷新,刷新间隔300s,有变动不会触发日志-->
<configuration scan="true" scanPeriod="300 seconds" debug="false">
    <!--定义日志存储路径 logs文件夹-->
    <property name="LOG_HOME" value="logs"/>
    <property name="ERR_NAME" value="alarm"/>
    <property name="LOG_NAME" value="log"/>


    <!-- 控制台日志输出格式 -->
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 采用PatternLayoutEncoder编码 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 日志输出格式,当前时间+线程+日志级别+日志打印所在的class -->
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
             <!-- 采用UTF-8字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 定义error日志文件输出格式 -->
    <appender name="PlatPixvisErrorLog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 定义error日志文件输出目录及文件名  logs/error文件夹下 项目名-error-日期-log -->
            <fileNamePattern>${LOG_HOME}/error/demo-error-%d{yyyy-MM-dd
                }-%i.log
            </fileNamePattern>
            <!-- 定义最大保留天数 -->
            <maxHistory>200</maxHistory>
            <!-- 定义单个文件大小 -->
            <maxFileSize>20MB</maxFileSize>
        </rollingPolicy>

        <encoder>
            <!-- 定义文件内日志输出格式 -->
            <pattern>%d{MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
            </pattern>
            <!-- 定义文件内日志字符集 -->
            <charset>UTF-8</charset>
        </encoder>

        <!-- 日志级别过滤器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 打印ERROR级别日志 onMatch:ACCEPT代表打印当前级别的日志。onMismatch:DENY代表不打印级别大于当前级别的日志 -->
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 定义Info日志文件输出格式 -->
    <appender name="PlatPixvisInfoLog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/info/plat-pixvis-debug-%d{yyyy-MM-dd
                }-%i.log
            </fileNamePattern>
            <maxHistory>200</maxHistory>
            <maxFileSize>20MB</maxFileSize>
        </rollingPolicy>

        <encoder>
            <pattern>%d{MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
            </pattern>
            <charset>UTF-8</charset>
        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 打印DEBUG级别的日志,大于debug级别的日志交给下个Filter处理-->
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>NEUTRAL</onMismatch>
        </filter>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 打印INFO级别的日志,大于Info级别的日志交给下个Filter处理-->
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>NEUTRAL</onMismatch>
        </filter>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 打印WARN级别的日志,大于WARN级别的日志不打印 -->
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 日志只对name这个包下的类有用,根据传入的level去匹配对应的日志文件 -->
    <logger name="com.example.plat" level="${log.level}" addtivity="true">
        <!-- 与appender绑定 -->
        <appender-ref ref="Console"/>
        <appender-ref ref="PlatPixvisInfoLog"/>
        <appender-ref ref="PlatPixvisErrorLog"/>
    </logger>
</configuration>

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值