Log4j2:如何在日志中打印所有对象参数

Log4j2: How to print all object parameters in log

我想在 Log4J2 中打印所有对象参数作为日志消息的一部分。例如,如果我调用

logger.info("Hello World 3", true, false, "'3 object params means we invoke ... method'");

结果是只记录了以下内容

Hello World 3

我想要类似的东西

Hello World 3 true false '3 object params means we invoke ... method'

我能做到

logger.info("Hello World 3 {} {} {}", true, false, "'3 object params means we invoke ... method'");

但我必须记得添加正确数量的 {}。我还使用来自其他日志框架的正则表达式重构了代码,所以我有很多语句看起来像第一个带有对象参数但不是 {} 的语句。

添加 * 或 [] 可以更改消息吗?我无法在 Log4j2 文档中找到它 Messages or Layout Patterns

请在 Log4j2 Jira 问题跟踪器上为此提出功能请求。

两点考虑: 1. 实现必须在提供的额外参数之间添加空格。 2. 需要注意不要破坏提取任何最后一个 Throwable 参数的现有逻辑。