我是一名Java程序员,使用NetBeans作为开发工具,在我的应用程序中创建了一个日志记录器。突然间,我看到了一个警告: “Logger中字符串拼接的效率较低。”
我的原始代码如下:
srcLogger.getLogger().log(Level.INFO,"UploadBean.doUpload completado [" + file.getName() + "]\n");
但NetBeans建议将其转换为模板(这里的“模板”是什么意思?)并提供以下代码:
srcLogger.getLogger().log(Level.INFO, "UploadBean.doUpload completado [{0}]\n", file.getName());
这两种连接方式有什么不同呢?尽管我从未使用过后者。 乾杯!
log(Level level, String msg, Object[] params)
方法时根据当前日志级别决定是否执行。 - Adamfine()
日志。构造字符串版本的列表需要O(n)的时间,但最终在生产环境中该字符串将被丢弃。让日志记录器处理字符串构造能够使它尽可能少做工作。 - dimo414