美文网首页
logback配置说明

logback配置说明

作者: 沐兮_d64c | 来源:发表于2018-04-26 11:30 被阅读0次

    1,configuration

    1)根节点<configuration>包含的属性
    <configuration scan="true" scanPeriod="60 seconds" debug="false"> </configuration>
    scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
    scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
    debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
    2)设置变量
    定义一个pattern,用于appender中自定义的layout。
    <property name="ENCODER_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss} %5p %class:%L] %m%n"/>

    2,logger和root

    1)设置root


    image.png

    <root level="INFO">将root的打印级别设置为“INFO”,指定了名字为“CONSOLE、info、error”的appender。
    2)设置logger


    image.png
    logger没有设置level,则继承<root>。
    没有设置addtivity,默认为true,将此loger的打印信息向上级传递。

    没有设置appender,此loger本身不打印任何信息。
    3)打印过程
    当执行到com.alibaba包中的方法时,将日志级别设置成warn,并传递给root,本身并不打印;root收到信息后,交由appender处理。

    3,Appender

    1)定义日志事件写入的组件。

    image.png
    2)定义一个name为STDOUT的ConsoleAppender。
    ConsoleAppender appends log events to System.out or System.err using a layout specified by the user.
    image.png

    4,Filter

    1)LevelFilter filters events based on exact level matching.

    image.png
    2)过滤低于阈值的日志事件。The ThresholdFilter filters events below the specified threshold.
    image.png

    5,Logback日志分隔

    1)定义appender

    <appender name="cost" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <Append>true</Append>
            <File>${log.dir}/cost.log</File>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${log.dir}/cost.log.%d{yyyy-MM-dd-HH}</fileNamePattern>
                <maxHistory>15</maxHistory>
            </rollingPolicy>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - %X{traceId} - %m%n</pattern>
            </encoder>
        </appender>
    

    2)定义logger

    <logger name="cost" additivity="false">
            <level value="info" />
            <appender-ref ref="cost" />
        </logger>
    //没有设置appender的话,此loger本身不打印任何信息。
    //注意level级别,从低到高all --> trace ->debug-->info-->warn-->error-->fatal-->off。
    

    3)使用logger

    private static final Logger COST_LOG = LoggerFactory.getLogger("cost");
    

    6,MDC

    1)简单原理
    MDC为“Mapped Diagnostic Context”(映射诊断上下文)org.sl4j.MDC,内部持有一个InheritableThreadLocal。将一些运行时的上下文数据通过logback打印出来
    2)使用
    MDC.put("traceId", UUID.randomUUID().toString());
    logback中配置%X{traceId}<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}####%X{traceId}####%m%n</pattern>
    MDC.clear();

    相关文章

      网友评论

          本文标题:logback配置说明

          本文链接:https://www.haomeiwen.com/subject/rlsplftx.html