有巨大的网络应用程序。当用户与 Web 应用程序交互时,大部分函数只调用一次,因此不存在性能问题。我编写了新的“从文件导入”方法,它从系统调用了很多次不同的方法。我不想修改其他人的方法,也不想禁用 log4j。从文件导入将很少使用,并且被视为附加组件,而不是主要功能。因此,我遇到了性能问题。在分析之后,我发现 log4j 使用了几乎 22% 的时间。
是否可以以编程方式禁用 log4j 的一种方法和它将调用的方法?
我认为出于性能原因,您应该替换这样的调用:
log.debug("some informantion: " + objA);
有了这个:
if(log.isDebugEnabled()) {
log.debug("some informantion: " + objA);
}
或者,您可以使用这样的 FormatLogger 类:https ://stackoverflow.com/a/105908/548225
要以编程方式禁用日志记录,您可以使用如下代码:
Logger.getLogger("your.logger.name").setLevel(Level.OFF);
Logger.getRootLogger().setLevel(Level.OFF);