如何抑制初始StatusLogger错误信息



我在应用程序中使用Apache POI 5.2.2。Apache POI使用log4j2作为调试的内部日志机制。因此,log4j-api-2.17.2.jar是必需的依赖项。我应该注意到我没有使用maven,所以我下载了POI二进制发行版,并在应用程序类路径中包含了所需的依赖项。

登录POI是为POI开发人员准备的,不建议用于正常操作(即最终用户)。对于我的用例,我根本不想使用日志记录。但是,当我的应用程序第一次加载一个POI类时,在stderr上打印以下消息:

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

我不想添加log4j-core,因为我真的不想要日志记录。我真的只是想抑制这个消息,因为日志记录与应用程序无关。我想以编程方式做到这一点,以避免为我不使用的东西添加配置文件。我试图通过将log4j2.StatusLogger.level属性设置为OFF来做到这一点,但这没有任何区别(我也尝试将其设置为0)。

是否有一个简单的咒语,我可以用它来抑制StatusLogger消息?或者我必须完全进入log4j2世界并编写一个空日志记录器?

您可以通过在Log4j2属性源之一中显式地将记录器上下文工厂设置为org.apache.logging.log4j.simple.SimpleLoggerContextFactory来禁用该消息。

你可以,例如,添加:

log4j2.loggerContextFactory = org.apache.logging.log4j.simple.SimpleLoggerContextFactory

到类路径上的log4j2.component.properties文件。

添加到命令行标志:

-Dlog4j2.loggerContextFactory=org.apache.logging.log4j.simple.SimpleLoggerContextFactory

此工厂将默认设置SimpleLogger

相关内容

最新更新