log4j正则表达式?[{}]

5 java logging log4j

嗨我有一个关于log4j记录器的问题.

我没有完全遵循记录器文本的一部分.该行看起来如下

logger.debug("Some text goes here [{}] and some more text here", someObject.function());
Run Code Online (Sandbox Code Playgroud)

我看了一眼,但我似乎无法将它看作是一个正则表达式,它闻起来很像它可能会有,但我怀疑它会被返回的值取代someObject.function()很多如何通过放置来替换输出中的字符串值一个%s.我在这个假设中是否正确?如果没有请详细说明它的作用.

And*_*lko 2

它不是正则表达式。{}是一种打印对象的特殊语法,它比字符串连接更可取。例如,

logger.debug("{}, {}", o1, o2); // 2 objects will be printed
logger.debug(o1 + ", " + o2); // the same in concatenation style
Run Code Online (Sandbox Code Playgroud)

我建议阅读有关格式化而{}不是字符串连接的优点。

我想补充一点,大多数日志记录系统都支持异步日志记录参数化消息,这意味着您将始终获得实际值(它不能通过串联保证)。