gpt4 book ai didi

spring-boot - GCP 和 Spring logback。严重性始终是信息

转载 作者:行者123 更新时间:2023-12-04 13:19:20 29 4
gpt4 key购买 nike

将错误记录到 stackdriver 时,即使使用 log.error 或 log.warn 等,每条消息都记录为 INFO,但负载是正确的。

enter image description here

我希望能够按严重性过滤并在出错时收到电子邮件。

我正在使用 Spring Boot 和 Logback。该应用已部署在 GCP 上的 Kubernetes 集群上。

这是我的 logback-spring.xml

<configuration>
<include resource="org/springframework/cloud/gcp/autoconfigure/logging/logback-appender.xml" />

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss, UTC} %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>

<springProfile name="prod,qa">

<root level="WARN">
<appender-ref ref="STACKDRIVER" />
</root>
</springProfile>

</configuration>

这是在Maven中添加的dep

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-logging</artifactId>
</dependency>

Spring Boot 版本:2.1.3.RELEASE
Spring Cloud 版本:Greenwich.RELEASE

这个配置有什么问题?还有其他解决办法吗?

编辑:刚刚意识到上面的 STACKDRIVER appender 不是记录到 Stackdriver 的那个,但 STDOUT 就足够了(也许是因为它是 Kubernetes 集群?),但问题仍然存在

最佳答案

Kubernetes 的 Stackdriver 日志记录代理配置对于写入容器标准输出的任何日志默认为 INFO,对于写入标准错误的日志默认为 ERROR。如果你想对严重性进行更细粒度的控制,你可以配置 Spring 以单行 JSON 记录(例如,通过 JsonLayout1)并让日志代理选择来自 JSON 对象的严重性(请参阅 https://cloud.google.com/logging/docs/agent/configuration#process-payload)。

1默认情况下,JsonLayout 将使用“级别”作为日志级别,而 Stackdriver 日志代理 recognizes “严重性”,因此您可能必须覆盖 addCustomDataToJsonMap

另见 GKE & Stackdriver: Java logback logging format?

关于spring-boot - GCP 和 Spring logback。严重性始终是信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55800765/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com