SLF4J 如何支持结构化日志

Alf*_*red 16 java logging logback slf4j structured-logging

任何人都知道SLF4J 通常如何实现结构化日志记录

是否有任何开源已经可以处理这个问题?

Fri*_*rdt 11

如果您将 SLF4J 与 Logback 和 Logstash 结合使用,则支持结构化日志记录StructuredArguments。您可以在 Github上的logstash logback 编码器页面上找到关于此的文档。

一个简单的例子来说明它是如何工作的。这个日志行..

log.debug("Retrieved file {}", StructuredArguments.value("filename", upload.getOriginalFilename()))
Run Code Online (Sandbox Code Playgroud)

.. 产生以下日志 json 输出:

{
  "filename": "simple.zip",
  "@timestamp": "2019-02-12T14:31:31.631+00:00",
  "severity": "DEBUG",
  "service": "upload",
  "thread": "http-nio-9091-exec-1",
  "logger": "some.great.ClassName",
  "message": "Retrieved file simple.zip"
}
Run Code Online (Sandbox Code Playgroud)


gav*_*koa 9

Slf4j 添加了对 v2.0.0 结构化日志(和 fluent API)的支持(Alpha 截至 2019 年 10 月):

  • 现在是 2023 年,这是一个完全可以接受的答案。 (3认同)

Sky*_*ker 4

github上有一个例子,是使用SLF4J. 希望它能帮助你。

如需更多学习,您可以阅读本教程。

  1. 使用 MDC 在 logback 中进行结构化日志记录
  2. 掌握 Java 日志记录