【发布时间】:2022-06-28 23:31:54
【问题描述】:
我正在使用 wildfly21 设置记录 level=INFO。在部署的代码中有很多 logger.debug 语句。
例如
private static Logger logger = LogManager.getLogger(getClass.getName());
logger.debug("Some debug message");
由于日志级别设置为 INFO,调试语句未正确记录到文件中。
我的问题是关于 logger.debug 的性能成本。
在代码中保留调试语句是否有任何性能成本。或者是文件 I/O 中的实际成本,因此在需要时保留调试语句以进行故障排除是没有害处的。
【问题讨论】:
-
Or is the real cost in the File I/O我不是专家,但我相信真正的成本在 IO 中,所以你应该没问题。需要注意的一件事是像logger.debug( "Concat " + i + " a " + param + " string " + x );DO 这样的语句会产生构建字符串的成本。您应该替换一个不执行字符串连接的版本,除非该语句被实际记录:logger.debug( "Concat {0} a {1} string {2}", i, param, x ); -
谢谢我完全忽略了成本字符串 concat。