使用Java过滤(未打印出)日志记录和性能

时间:2013-06-21 13:23:12

标签: java logging

我知道日志记录会严重阻碍应用程序的性能。我想知道如果使用适当的LoggingFilter过滤所有日志记录,那么登录应用程序性能的影响是否也会很明显。

我对此感到疑惑,因为我正在考虑在我的应用程序中实现日志记录,因为它可能非常有用,但不以牺牲(可能)使其变慢为代价。

1 个答案:

答案 0 :(得分:2)

AFAIK,日志记录通常(即通过你通常的Log4j实现)在一个单独的线程中完成,所以它实际上并没有对你的表现造成太大影响。

在添加日志记录时我学会了避免性能命中的一些事情是在执行任何字符串连接以构建日志消息之前始终检查是否启用了适当的日志记录级别,即:

if(log.isInfoEnabled()) {
    log.info("This log message has some string concatenation " + loggedValue);
}

这样,如果将日志记录级别阈值设置为高于INFO的值,则不会运行字符串连接。