以编程方式更改 Log4j2 中的日志级别
我对以编程方式更改Log4j2中的日志级别感兴趣。我尝试查看他们的配置文档,但似乎没有任何内容。我也尝试在包装中查找:,但其中也没有任何东西看起来有帮助。org.apache.logging.log4j.core.config
我对以编程方式更改Log4j2中的日志级别感兴趣。我尝试查看他们的配置文档,但似乎没有任何内容。我也尝试在包装中查找:,但其中也没有任何东西看起来有帮助。org.apache.logging.log4j.core.config
简单的方法:
根据 log4j2 版本 2.4 FAQ 进行编辑
您可以使用Log4j Core中的类Configator设置记录器的级别。但请注意,Configurator 类不是公共 API 的一部分。
// org.apache.logging.log4j.core.config.Configurator;
Configurator.setLevel("com.example.Foo", Level.DEBUG);
// You can also set the root logger:
Configurator.setRootLevel(Level.DEBUG);
首选方式:
已编辑以反映 Log4j2 版本 2.0.2 中引入的 API 中的更改
如果要更改根记录器级别,请执行以下操作:
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
loggerConfig.setLevel(level);
ctx.updateLoggers(); // This causes all Loggers to refetch information from their LoggerConfig.
这是LoggerConfig的javadoc。
@slaadvak接受的答案对Log4j2 2.8.2不起作用。以下情况确实如此。
要更改日志,请使用:Level
Configurator.setAllLevels(LogManager.getRootLogger().getName(), level);
要仅更改当前类的日志,请使用:Level
Configurator.setLevel(LogManager.getLogger(CallingClass.class).getName(), level);