问题描述
我在应用程序中使用log4j。 在开发中,我使用大量的logger.debug来显示信息以进行调试。 我知道我可以通过在部署时更改配置文件中的日志记录级别来使这些详细显示消失,我的问题是这会影响性能吗? 难道是尽管禁用了调试级别,但日志记录工作仍然存在并且静默处理了吗? 如果性能很重要,最好删除最终部署版本中的所有logger.debug代码吗?
1楼
由于这个原因,现代记录器可以非常迅速地从非活动的记录语句返回
您需要知道构造要记录的字符串的代价。
如果您使用slf4j作为前端,请使用{}
将其延迟到测试之后
2楼
任何IO操作都会影响性能。
即使您更改日志记录级别,每次调用log.debug
,logger都必须决定是否打印消息。
但是,决策要比写入文件/控制台/其他东西更快。