log4j正则表达式? [{}]

时间:2016-07-05 06:29:18

标签: java logging log4j

您好我有关于log4j记录器的问题。

有一部分记录器文字我不太关注。 该行看起来如下

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

我看了一眼,但我似乎无法将其视为正则表达式,它的味道非常强烈,但我怀疑它会被someObject.function()的返回值所取代如何通过放置%s来替换输出中的字符串值。我在这个假设中是否正确?如果没有请详细说明它的作用。

2 个答案:

答案 0 :(得分:2)

这不是正则表达式。 {}是打印对象的特殊语法,优于字符串连接。例如,

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

我建议阅读advantages of formatting with {} instead of string concatenation

我想补充一点,大多数日志记录系统都支持asynchronous logging parameterized messages,这意味着您将始终获得实际值(它不能通过连接来保证)。

答案 1 :(得分:1)

someObject.function()的值将在{}

中被替换