微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

添加可抛出对象时,使用LoggingEventCompositeJsonEncoder进行的Logback不会记录事件

如何解决添加可抛出对象时,使用LoggingEventCompositeJsonEncoder进行的Logback不会记录事件

我正在使用Spring Boot / Spring云流项目

我使用Logback将ConsoleAppender和LoggingEventCompositeJsonEncoder作为编码器进行记录

当我尝试记录错误时,如果仅传递一条消息或带有结构化参数的消息,它将起作用

但是当我添加任何类型的异常/可抛出异常时,什么都不会记录

这是将记录的示例:

appLogger.error("some error message");
appLogger.error("some error message",StructuredArguments.keyvalue("param1","value1"));

这是将不会记录的示例:

appLogger.error("some error message",e);  // e is some none null of Exception type object

这是我的logback xml配置:

<appender name="JSON_CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <contextName>
                <fieldName>app</fieldName>
            </contextName>
            <timestamp>
                <fieldName>ts</fieldName>
                <timeZone>UTC</timeZone>
            </timestamp>
            <loggerName>
                <fieldName>logger</fieldName>
            </loggerName>
            <logLevel>
                <fieldName>level</fieldName>
            </logLevel>
            <callerData>
                <classFieldName>class</classFieldName>
                <methodFieldName>method</methodFieldName>
                <lineFieldName>line</lineFieldName>
                <fileFieldName>file</fileFieldName>
            </callerData>
            <threadName>
                <fieldName>thread</fieldName>
            </threadName>
            <mdc />
            <arguments>
                <includeNonStructuredArguments>true</includeNonStructuredArguments>
            </arguments>
            <stackTrace>
                <fieldName>stack</fieldName>
            </stackTrace>
            <message>
                <fieldName>msg</fieldName>
            </message>
        </providers>
    </encoder>
</appender>

<logger name="application1" additivity="false">
    <appender-ref ref="JSON_CONSOLE" />
</logger>

在这里想念什么? 根据文档,为什么记录器会忽略或因Exception错误而失败,如果Exception是最后一个参数,则应使用ExtendedThrowableProxyConverter

对其进行解析。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。