我有一个关于 log4j 日志性能的问题,在我的项目中,我在类中看到很多日志消息。在生产环境中,日志不会打印其中的许多内容(正常行为)。不管怎样,每个日志都在创建一个String对象。示例:
Log.debug("This my debug message 1");
...
Log.debug("This my debug message 400");
我们为日志创建了很多字符串文字。即使我只显示错误级别,这会对我的生产站点产生很大影响吗?
谢谢
最佳答案
如果构造日志字符串相当复杂(例如,在对象上调用复杂的 toString
),则可以。
就您的情况(简单的字符串日志记录)而言,可能不值得编写防护:
if (Log.isDebugEnabled()) {
Log.debug("...");
}
参见http://logging.apache.org/log4j/1.2/manual.html (底部的“性能”部分)
关于java - Log4j 性能和对象创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42828301/