java - Log4j 性能和对象创建

标签 java logging

我有一个关于 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/

相关文章:

java - Spring 数据 Neo4j : Indefinite waiting for RWLock without DeadlockDetectedException

java - 具有 Java API 的 linux 范围内的信号量

java - 有没有办法改变 JComboBox 的项目焦点?

mysql - 使用哪种策略来设计日志数据存储?

java - 记录到 JSON

java - 为什么PDFBox在转换为图像文件时会删除矩形线

java - Vert.x - 从 POST 请求获取参数

javascript - GAE node.js console.error() 未记录为 ERROR 日志级别

go - 为什么 go 程序将输出打印到终端屏幕而不是/dev/stderr?

django - 使用 Django、Nginx、Gunicorn 和 supervisor 进行空日志记录