GCP 日志浏览器显示日志记录的错误严重级别

2024-05-06

我正在 GKE 中运行 java 应用程序并在日志资源管理器中监视日志。 Java 应用程序正在将日志写入stdout据我了解,GKE 代理解析它并将其发送到日志资源管理器。我发现日志浏览器显示WARN and ERROR具有严重性的消息INFO。 我发现我无法更改日志的默认解析器并配置 logback 以适合 GCP 的 JSON 格式表示 java 日志(我使用了来自此的实现answer https://stackoverflow.com/a/44168383/6718334),这是一个例子:

{"message":"2022-02-17 12:42:05.000 [QuartzScheduler_Worker-8] DEBUG some debug message","timestamp":{"seconds":1645101725,"nanos":0},"thread":"QuartzScheduler_Worker-8","severity":"DEBUG"}
{"message":"2022-02-17 12:42:05.008 [QuartzScheduler_Worker-8] INFO some info message","timestamp":{"seconds":1645101725,"nanos":8000000},"thread":"QuartzScheduler_Worker-8","severity":"INFO"}
{"message":"2022-02-17 12:42:05.009 [QuartzScheduler_Worker-8] ERROR some error message","timestamp":{"seconds":1645101725,"nanos":9000000},"thread":"QuartzScheduler_Worker-8","severity":"ERROR"}

但这根本没有帮助。

请指出 JSON 格式有误的地方,或者我可能需要在 GCP 端额外配置一些东西。我查过官方的doc https://cloud.google.com/logging/docs/structured-logging关于日志 JSON 格式,我不明白我缺少什么。


根据文档link 1 https://cloud.google.com/stackdriver/docs/solutions/gke/managing-logs#best_practices & link 2 https://cloud.google.com/logging/docs/structured-logging#special-payload-fields

严重性:默认情况下,写入标准输出的日志处于 INFO 级别,写入标准错误的日志处于 ERROR 级别。结构化日志可以包含严重性字段,该字段定义日志的严重性。

如果您使用 Google Kubernetes Engine 或 App Engine 灵活环境,则可以将结构化日志作为在单行上序列化的 JSON 对象写入到 stdout 或 stderr。然后,Logging 代理将结构化日志作为 LogEntry 结构的 jsonPayload 发送到 Cloud Logging。


如果手动执行不起作用,您可以尝试:

  • 直接将日志发送到云日志API https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/write

  • Use this https://github.com/googleapis/java-logging-logback官方 Java logback lib(注意:目前是 WiP)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GCP 日志浏览器显示日志记录的错误严重级别 的相关文章

随机推荐