LOG4J2:以编程方式配置时禁用 "No log4j2 configuration file found.." 打印
LOG4J2: Disable "No log4j2 configuration file found.." print when configuring programmatically
我没有使用任何 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
[=37 禁用了另一个关于 Log4j2 JMX 的通知=].但是我找不到这个。
您必须实施初始化方法才能从代码正确初始化 log4j 配置。
查看下面页面中的 "How do I configure log4j2 in code without a configuration file" 部分,该部分还提供了源代码。
添加以下系统属性 以便不显示该消息:
-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);
您只需在主 class 中执行此操作即可。
static {
StatusLogger.getLogger().setLevel(Level.OFF);
}
我没有使用任何 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
[=37 禁用了另一个关于 Log4j2 JMX 的通知=].但是我找不到这个。
您必须实施初始化方法才能从代码正确初始化 log4j 配置。
查看下面页面中的 "How do I configure log4j2 in code without a configuration file" 部分,该部分还提供了源代码。
添加以下系统属性 以便不显示该消息:
-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);
您只需在主 class 中执行此操作即可。
static {
StatusLogger.getLogger().setLevel(Level.OFF);
}