Google Spring Cloud logback-json-appender 隐藏线程或日志等信息class

Google Spring Cloud logback-json-appender hides information like thread or logging class

情况:

Spring-使用 Logback 进行日志记录的启动应用程序。 部署在 google 云端 运行。 Logback 配置包括 CONSOLE_JSON,如 here 所述,为云 运行 实例预配置 json appender。

要查看我的应用程序的日志,我正在使用 Cloud 运行 Logs。

考虑到来自 spring 的默认日志,我有 package/class 消息和其他信息,写在行中。

Spring-启动日志示例:

使用预配置的附加程序切换到 json 格式,我错过了一些信息,例如带有 class 名称或线程名称的缩短包。

我希望使用现有的 console_json appender 来实现这一点。 不幸的是,我必须使用 google Logs Explorer 然后查看一个名为 jsonPayload 的 json 条目,从可用性的角度来看这很烦人

期望输出:

感谢任何帮助。

我的 Logback 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
  <include resource="com/google/cloud/spring/logging/logback-json-appender.xml"/>
  <include resource="org/springframework/boot/logging/logback/console-appender.xml" />

  <springProperty scope="context" name="SERVICE_NAME" source="logging.service"/>
  <springProperty scope="context" name="APP_NAME" source="logging.app"/>
  <springProperty scope="context" name="ENVIRONMENT" source="logging.environment"/>

  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight %cyan(%-5level) %logger{30} - %msg%n</pattern>
    </encoder>
</appender>
<springProfile name="npr">
    <root level="INFO">
        <appender-ref ref="CONSOLE_JSON"/>
    </root>
</springProfile>
<springProfile name="prd">
    <root level="INFO">
        <appender-ref ref="CONSOLE_JSON"/>
    </root>
</springProfile>
<springProfile name="local">
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
 </springProfile>
</configuration>

我看到 2 个选项。

  1. 自己写一个Appender,以备不时之需。
  2. 作为llompalles mentioned i give it a try with a GitHub Issue