java - 使用 Log4j 记录方法名称的缺点

标签 java logging log4j

在日志中添加运行时错误的来源方法可以大大提高解决问题的效率,是调试大型项目的宝贵工具。例如,如果在 %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/

相关文章:

garbage-collection - Oracle或OpenJDK中GC的集合类型是精确的还是保守的?

python - 如何使级别名称小写?

asp.net-mvc - 我可以在 ASP.NET MVC 5(非 mvc 核心)项目中使用 ILoggerFactory 吗?

c# - Log4Net可以自动删除日志文件吗?

java - 将 GET 请求参数获取到 @ViewScoped bean

java - Jersey 服务器 : Return a string and a non-200 return code

java - Spring 中的动态 Apache log4j

java - 如何恢复此错误: log4j:WARN No appenders could be found for logger (net. sf.jasperreports.extensions.ExtensionsEnvironment)

java - 没有未使用变量的静态 block 的替代方案

logging - 使用 Common.Logging 和 Autofac 的自动化工厂?