您好我有关于log4j记录器的问题。
有一部分记录器文字我不太关注。 该行看起来如下
logger.debug("Some text goes here [{}] and some more text here", someObject.function());
我看了一眼,但我似乎无法将其视为正则表达式,它的味道非常强烈,但我怀疑它会被someObject.function()
的返回值所取代如何通过放置%s来替换输出中的字符串值。我在这个假设中是否正确?如果没有请详细说明它的作用。
答案 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()的值将在{}
中被替换