1

我正在使用 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>

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

4

0 回答 0