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

Exc*_*ite 16 java log4j2

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

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

消息:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
Run Code Online (Sandbox Code Playgroud)

当我调用下面的代码时,它会出现:

LoggerContext context = (LoggerContext) LogManager.getContext(false);
Run Code Online (Sandbox Code Playgroud)

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

Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);
Run Code Online (Sandbox Code Playgroud)

是否有某种属性可以设置为禁用此消息显示?还是另一种方法?

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

Pau*_*gas 13

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

-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=OFF
Run Code Online (Sandbox Code Playgroud)

或者,更简单地说:

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

...

StatusLogger.getLogger().setLevel(Level.OFF);
Run Code Online (Sandbox Code Playgroud)


Kin*_*ung 8

您可以在主类中完成此操作.

static {
    StatusLogger.getLogger().setLevel(Level.OFF);
}
Run Code Online (Sandbox Code Playgroud)