SLF4J 如何支持结构化日志记录 [已关闭]
2022-09-02 12:38:10
Slf4j 通过 v2.0.0 添加了对结构化日志记录(和 Fluent API)的支持(截至 2019 年 10 月的 Alpha 版):
http://www.slf4j.org/apidocs/org/slf4j/spi/LoggingEventBuilder.html
int newT = 15;
int oldT = 16;
// using classical API
logger.debug("oldT={} newT={} Temperature changed.", newT, oldT);
// using fluent API
logger.atDebug()
.addKeyValue("oldT", oldT)
.addKeyValue("newT", newT)
.log("Temperature changed.");
如果将 SLF4J 与 Logback 和 Logstash 结合使用,则 .您可以在Github上的logstash logback编码器页面上找到有关此内容的文档。StructuredArguments
它如何工作的简单示例。此日志行..
log.debug("Retrieved file {}", StructuredArguments.value("filename", upload.getOriginalFilename()))
..生成以下日志 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"
}