在对系统进行压力测试时,我们发现了一个有趣的问题。我们大量使用log4j(jboss中)进行日志记录。下面是一个简单的例子

void someFunction()
{
Log.info("entered some function");
...

Log.info("existed some function");
}

现在我们注意到一件有趣的事情,如果我们针对这个函数启动100个线程,那么log.info()调用会阻塞每个线程。这意味着线程2正在等待线程1完成“log.info”调用。如果是线程100,它会等待很长时间。我们使用的是本机文件记录器。
这是已知问题吗?

最佳答案:

AsyncAppender