Java日志记录器消息模板不起作用。

4

我在我的程序中使用了一个日志记录器java.util.logging.Logger。最开始我写的是这样的:

logger.log(Level.INFO, "message"+str);

我的IDE告诉我可以使用消息模板来提高效率,因此IDE将上述内容更改为:

logger.log(Level.INFO, "message{0}", str);

但是当我运行程序时,输出只是:
11:43:05[INFO]message{0}

上述代码有什么问题吗?我已经搜索了这个方法并在每个网站上都找到了正确的语法,但它似乎不起作用。
编辑:我注意到另一个讨论该问题的线程,并且回答是要转义单引号。但是,我的原始代码中字符串中没有任何单引号。

你的“message”中包含单引号吗?第二种形式明显更优:如果消息从未被记录(例如,如果日志记录关闭),则不执行任何字符串替换。 - sjr
1个回答

3
您想使用MessageFormatlog.info(MessageFormat.format("message{0}",string)) 字符串将替换“ {0}”。

注意:这也不是非常高效,因为字符串替换将会被执行,无论是否生成任何日志消息。请考虑如果日志记录被关闭的情况。 - sjr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接