Logback日志输出问号的问题解决方案

2019-02-16  本文已影响0人  宋雾代

这几天发现对接到splunk的Logback日志class字段输出的有一定概率会出现问号。
配置如下:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>LOCAL_SYSTEM_TIME=[%d{yyyy-MM-dd HH:mm:ss.SSS}],THREAD=[%thread],LOG_LEVEL=[%-5level],CLASS=[%class{35}.%M:%L],%m%n</pattern>
    </encoder>
</appender>

原因分析

输出文件以及行号信息需要 stacktrace 获取 callerdata,因为性能原因 logback 的 AsyncAppender 默认是不记录该信息。

解决方法

增加如下配置在appender中

<includeCallerData>true</includeCallerData>

修改后如下:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>LOCAL_SYSTEM_TIME=[%d{yyyy-MM-dd HH:mm:ss.SSS}],THREAD=[%thread],LOG_LEVEL=[%-5level],CLASS=[%class{35}.%M:%L],%m%n</pattern>
    </encoder>
    <includeCallerData>true</includeCallerData>
</appender>

官方文档 https://logback.qos.ch/manual/appenders.html#AsyncAppender:

上一篇 下一篇

猜你喜欢

热点阅读