logback配置說明

1,configuration

1)根節(jié)點<configuration>包含的屬性
<configuration scan="true" scanPeriod="60 seconds" debug="false"> </configuration>
scan:當此屬性設置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認值為true。
scanPeriod: 設置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。
debug: 當此屬性設置為true時,將打印出logback內(nèi)部日志信息,實時查看logback運行狀態(tài)。默認值為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)打印過程
當執(zhí)行到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,F(xiàn)ilter

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,內(nèi)部持有一個InheritableThreadLocal。將一些運行時的上下文數(shù)據(jù)通過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();

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容