在日志中添加运行时错误的来源方法可以大大提高解决问题的效率,是调试大型项目的宝贵工具。例如,如果在 %M
中设置了一些标志(例如 PatternLayout
),Log4j 可以将此信息添加到其日志中。日志附加器的。
但是,Apache documentation of PatternLayout对于包含源方法名称的日志发出以下警告:
WARNING Generating caller location information is extremely slow and should be avoided unless execution speed is not an issue.
有没有人有(权威)经验来了解这在现实世界中的真实情况?这种日志记录真的应该“避免”还是可以接受,因为它具有相当大的调试优势?
最佳答案
你肯定不希望它出现在热代码中。它可能会使用异常的堆栈跟踪来执行此操作,这确实非常慢。
Log4j 具有可配置的日志记录级别。我建议您仅在调试级别日志记录中启用此功能。您应该在正常操作期间避免这种情况。
关于java - 使用 Log4j 记录方法名称的缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803976/