【问题标题】:Json logs using log4j使用 log4j 的 Json 日志
【发布时间】:2021-10-04 12:15:23
【问题描述】:

您好,我正在尝试将我的纯文本日志转换为 json 格式。我在应用程序中使用 log4j 作为日志框架。 我在 log4j.properities 中尝试了这种配置

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.encoding=UTF-8
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern={"debug_level":"%p","debug_timestamp":"%d{ISO8601}","debug_thread":"%t","debug_file":"%F", "debug_line":"%L","debug_message":"%m"}%n

但是没有用。

谁能帮助我如何在 log4j 中使用 json 模板

【问题讨论】:

  • 具体是如何不起作用的?是它没有正确引用 JSON 的问题吗?
  • 是的,日志仍然是纯 tetx 行而不是 json 格式

标签: java logging log4j google-kubernetes-engine


【解决方案1】:

如果您使用的是 Google Cloud Platform,那么有一种直接的方法可以获取 JSON 格式的日志:

  1. 转到控制台中的导航菜单并选择 Cloud Logging。
  2. 在 Cloud Logging 中,我们会显示查询结果。在查询中 结果,有一个名为 Actions 的按钮,带有一个向下箭头。
  3. 点击向下箭头,我们会看到一些选项,选择下载日志。
  4. 我们会在那里弹出一个窗口,在格式中选择 JSON 并单击下载。
  5. 如果您想将更多日志转换为 JSON 格式,请查看Exporting logs
  6. 要获取特定时间范围内的日志,请单击过去 7 天 控制台右上角的图标,然后选择自定义时间 范围。

注意:如果您没有使用 GCP

请看看这个similar issue.

【讨论】:

  • 感谢@Nikitha 的回答。是的,我正在使用 GCP 日志记录,并且我已经尝试了您建议的方法。但问题是我的应用程序将所有日志发送到 System.Out 文件(甚至是错误日志),即使它们是错误日志,默认情况下也会将其视为 INFO 严重性。就像下面的示例 ` { "textPayload": "[10/5/21 11:12:41:663 CEST] application error message", "insertId": "", "resource": { "type": "k8s_container" "severity": "INFO", "logName": "", } ` 即使我的日志在 System.out 文件中有错误消息,它也被视为 INFO 级别
  • 如果消息中提到的“错误”字不被视为错误日志,则某些信息日志消息中也有错误字,如果是错误日志,则“严重性”将是“错误”。即 "severity": "ERROR" 尝试使用此查询 severity=((WARNING OR NOTICE OR INFO OR DEBUG OR DEFAULT) AND (NOT ERROR)) 过滤错误日志中的日志并检查您是否仍然收到错误日志,我在我的环境中尝试过,我云排除“严重性”:“错误”日志。
  • 其实这就是问题所在。由于所有应用程序日志(信息 + 错误)都记录在 System.out 中。并且 gcp logging 将 System out 中的日志视为“严重性”:“INFO”所以即使我有错误日志,它们也会被视为信息日志。
  • 我找到了一个Documentation,它谈到了在 system.out 中获取应用程序日志。这里尝试选择任何日志级别INFO并从system.out过滤错误日志。通过单击日志列表右上角的下载图标下载日志,然后选择 JSON 以将其下载为 JSON 格式。
  • @Nikitha 我添加了一张图片以供参考,日志资源管理器中的日志显示文本有效负载而不是文本有效负载我希望日志为 jsonpayload。以便过滤正确的严重性。
猜你喜欢
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多