【发布时间】:2021-01-16 09:57:46
【问题描述】:
我正在使用 logstash 在 Spring Boot 应用程序中使用结构化日志记录,有时我想在日志中包含我不想在日志消息中使用的键值。是否有 StructuredArgument 或类似的允许这样做?
我目前正在做的一个例子是这样的:
// import lombok.extern.slf4j.Slf4j;
// import static net.logstash.logback.argument.StructuredArguments.kv;
// import static net.logstash.logback.argument.StructuredArguments.v;
log.info(
"My message with one arg {}",
v("key1":"arg I want to include value in place of placeholder in message and in json as key/value"),
kv("key2", "arg I only want in the json and not in the message"))
一切都如我所愿,我的意思是日志包含键值对,而消息仅包含第一个值来代替占位符。问题是我从编译器收到了一个警告,该警告由 intellij (PlaceholderCountMatchesArgumentCount) 标记,关于第二个结构化参数,我想避免这种情况而不诉诸于抑制/忽略它
【问题讨论】:
标签: java spring-boot logstash slf4j spring-logback