使用 Log4j 记录方法名称的缺点
Drawbacks of logging method names with Log4j
在日志中添加运行-次错误的源码方法,可以大大提高解决问题的效率,是调试大型项目的利器。例如,如果在日志附加程序的 PatternLayout
中设置了一些标志(例如 %M
),Log4j 可以将此信息添加到其日志中。
但是,Apache documentation of PatternLayout 发出以下关于包含源方法名称的日志的警告:
WARNING Generating caller location information is extremely slow and should be avoided unless execution speed is not an issue.
有没有人有(权威的)经验来判断这在现实世界中的真实性有多少?这种日志记录真的应该 "avoided" 还是可以接受,因为它具有相当大的调试优势?
您绝对不希望它出现在热门代码中。它可能会使用异常的堆栈跟踪来执行此操作,这确实很慢。
Log4j 具有可配置的日志级别。我建议您只在调试级别的日志记录中启用此功能。您应该在正常操作期间避免这种情况。
在日志中添加运行-次错误的源码方法,可以大大提高解决问题的效率,是调试大型项目的利器。例如,如果在日志附加程序的 PatternLayout
中设置了一些标志(例如 %M
),Log4j 可以将此信息添加到其日志中。
但是,Apache documentation of PatternLayout 发出以下关于包含源方法名称的日志的警告:
WARNING Generating caller location information is extremely slow and should be avoided unless execution speed is not an issue.
有没有人有(权威的)经验来判断这在现实世界中的真实性有多少?这种日志记录真的应该 "avoided" 还是可以接受,因为它具有相当大的调试优势?
您绝对不希望它出现在热门代码中。它可能会使用异常的堆栈跟踪来执行此操作,这确实很慢。
Log4j 具有可配置的日志级别。我建议您只在调试级别的日志记录中启用此功能。您应该在正常操作期间避免这种情况。