好吧,我只是想调用。
LOG.info("Info message: {}", "some message")
我得到了一个非常奇怪的例外:
java.lang.IllegalArgumentException: can't parse argument number:
at java.base/java.text.MessageFormat.makeFormat(MessageFormat.java:1454)
at java.base/java.text.MessageFormat.applyPattern(MessageFormat.java:492)
at java.base/java.text.MessageFormat.<init>(MessageFormat.java:371)
at java.base/java.text.MessageFormat.format(MessageFormat.java:860)
at [email protected]//org.jboss.resteasy.logging.impl.Log4jLogger.warn(Log4jLogger.java:109)
和
Caused by: java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:678)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
at java.base/java.text.MessageFormat.makeFormat(MessageFormat.java:1452)
无法找出什么是错误的记录器-任何想法,请?
1条答案
按热度按时间zf2sa74q1#
看起来你的日志实现使用了java.text.MessageFormat。* 最终 *,
info(String format, Object... args)
方法调用MessageFormat.format(String pattern,Object. args)方法,该方法需要MessageFormat的Patterns and Their Interpretation中描述的模式。因此,在本例中,传入
info
方法的第一个参数中的花括号内容被解释为FormatElement
,这至少需要一个(非负整数)索引,该索引应指向传入info
方法的下一个参数。因此,{0}
参考工作。为了说明,你也可以这样做:
它应该产生这样的结果:
信息消息:在2021年11月16日下午1:05:01我收到了一些消息。