LOG4J2:以编程方式配置时禁用“找不到log4j2配置文件..”

时间:2015-01-16 23:11:07

标签: java log4j2

我没有使用任何XML配置文件,而是以编程方式设置记录器配置。记录器正常工作,但就在我调用下面代码的第一行时,会显示警告ERROR消息,告诉我找不到配置文件,将使用默认配置。

但我不希望每次我打开程序时都会在控制台上显示此消息,因为我将以编程方式自行添加配置。

消息:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

当我拨打以下代码时会出现:

LoggerContext context = (LoggerContext) LogManager.getContext(false);

或者如果我先获得根记录器:

Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);

我是否可以设置某种属性来禁用此消息?还是另一种方法?

注意:我通过设置属性 -Dlog4j2.disable.jmx=true 禁用了有关Log4j2 JMX的其他通知。但我找不到这个。

2 个答案:

答案 0 :(得分:12)

添加以下系统属性以便不显示该消息:

-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=OFF

或者,更简单地说:

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.status.StatusLogger;

...

StatusLogger.getLogger().setLevel(Level.OFF);

答案 1 :(得分:2)

您必须实现初始化方法,以便从代码中正确初始化log4j配置。

检查"如何在没有配置文件的情况下在代码中配置log4j2"下页中提供源代码的部分。

http://logging.apache.org/log4j/2.x/faq.html