logback 日志配置笔记

1. 所需jar包 maven

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>

2. 完整简单logback配置

<configuration>
    <jmxConfigurator/>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-36thread] [%-5level] [%-36logger{36}] - token:[%X{token}] %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- INFO日志 -->
    <appender name="FILE-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path:-logs}/${app.name}/info.log</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
            ${log.path:-logs}/${app.name}/info-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <MaxHistory>90</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-36thread] [%-5level] [%-36logger{36}] - token:[%X{token}] %msg%n
            </pattern>
        </encoder>
    </appender>
    <!--错误日志-->
    <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path:-logs}/${app.name}/err.log</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${log.path:-logs}/${app.name}/err-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <MaxHistory>90</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-36thread] [%-5level] [%-36logger{36}] - token:[%X{token}] %msg%n
            </pattern>
        </encoder>
    </appender>

    <!--单独指定日志级别 优先级高于全局-->
    <logger name="com.wang" level="DEBUG"/>

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

</configuration>

3. 根标签,一级标签

<configuration> 根标签
<property name="key" value="value"/> 自定义变量key,值为value
<jmxConfigurator/> 启用jmx动态管理,可以配置jmx服务动态变更logback配置
<appender> 自定义日志输出
<logger> 包,类日志输出级别指定
<root> 全局日志输出级别指定
注意:logger指定的级别,优先级高于root级别。 

4. 日志级别说明

常用级别从低到高排列:

1. debug
2. info
3. warn
4. error
日志输出遵循:小于等于规则,即,指定某级别为日志输出条件,那么小于等于该级别的日志都将被输出。
若需控制,可用filter。

5. appender 简略说明

说明性描述

<appender name="自定义别名" class="系统实现appender类">
        <file>初始生成日志文件地址</file>
        <filter class="系统实现过滤类">
            <level>过滤标识级别</level>
            <onMatch>ACCEPT</onMatch> 符合过滤策略执行 ACCEPT 代表通过(输出日志)
            <onMismatch>DENY</onMismatch> 不符合过滤策略执行 DENY 代表不通过(不输出日志)
        </filter>
        <rollingPolicy class="系统实现日志备份策略类">
            <FileNamePattern>
            日志备份文件名称格式指定
            </FileNamePattern>
            <MaxHistory>90</MaxHistory> 最大备份天数 
            <TimeBasedFileNamingAndTriggeringPolicy class="系统备份循环实现类">
                <MaxFileSize>100MB</MaxFileSize> 单文件最大容量
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="系统实现日志格式化类">
            <pattern>
              日志格式化字符串
            </pattern>
        </encoder>
</appender>

简单demo

    <appender name="FILE-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path:-logs}/${app.name}/info.log</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
            ${log.path:-logs}/${app.name}/info-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <MaxHistory>90</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-36thread] [%-5level] [%-36logger{36}] - token:[%X{token}] %msg%n
            </pattern>
        </encoder>
    </appender>

6. 字符串特殊标识说明

${} 代表取对应系统环境变量名,若不存在填充xx_IS_UNDEFINED
${xx:-yy} 代表若xx环境变量名不存在,则值为yy
%d  默认格式日期,或 %d{日期格式} 指定日期格式 
%thread 当前线程名 
%level 当前日志级别
%logger 当前执行日志类全名 包含package
%X{} 取MDC存储对应变量名
%msg 当然日志提示信息
%n 换行
%i 数字
-左对齐
-36 左对齐 最少36个字符
-36.36 左对齐 最少36,最大36
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值