NetBeans建议我改变写入具有字符串连接的日志语句的方式,声明将字符串连接转换为消息模板,以便语句(如:
log.severe("Completed at: " + new Date());变到
log.log(Level.SEVERE, "Completed at: {0}", new Date());问题是现在日期没有打印出来。相反,字符串"{0}“将被打印出来。我还有别的事要做吗?
发布于 2011-03-18 20:37:10
假设你发布的代码片段不是导致问题的原始代码.在您的消息中有一个撇号将导致您描述的问题的类型。java.util.logging.Logger.log将消息传递给java.text.MessageFormat哪个要求你避开撇号。
例如:
log.log( Level.FINE, "Can't handle {0}.", id );
log.log( Level.FINE, "Can''t handle {0}.", id );日志:
Cant handle {0}.
Can't handle ID0001.发布于 2010-08-03 17:54:51
我知道PrintStream有一个以这种方式工作的format方法,尽管Java使用类似C的前缀而不是C#的{}包装器。但是Logger没有这样的方法。相反,您正在调用log的重写,在我的经验中,该重写只记录给定的字符串,而不对Object参数执行任何操作。
https://stackoverflow.com/questions/3399165
复制相似问题