Java 使用库log4j 2更改代码中的日志级别
我正在尝试更改程序中的日志记录级别。 我使用log4j2,我有一个配置文件,其中包含控制台appender和文件appender: 我正在尝试更改日志记录级别,如下所示:Java 使用库log4j 2更改代码中的日志级别,java,logging,log4j2,Java,Logging,Log4j2,我正在尝试更改程序中的日志记录级别。 我使用log4j2,我有一个配置文件,其中包含控制台appender和文件appender: 我正在尝试更改日志记录级别,如下所示: public static void initialize(final boolean trace, final boolean debug) { System.out.println(); System.out.println("Class LogUtils -> method initia
public static void initialize(final boolean trace, final boolean debug) {
System.out.println();
System.out.println("Class LogUtils -> method initialize()");
System.out.println(" trace: " + trace);
System.out.println(" debug: " + debug);
Level level = Level.INFO;
if (trace) {
level = Level.TRACE;
} else if (debug) {
level = Level.DEBUG;
}
System.out.println(" level: " + level.toString() + "\n");
// Update log levels for all appenders
final LoggerContext context = (LoggerContext) LogManager.getContext(false);
final Configuration config = context.getConfiguration();
final Map<String, LoggerConfig> configLoggers = config.getLoggers();
for (Map.Entry<String, LoggerConfig> loggerConfigEntry : configLoggers.entrySet()) {
final String key = loggerConfigEntry.getKey();
final LoggerConfig loggerConfig = loggerConfigEntry.getValue();
System.out.println(" '" + key + "' : " + loggerConfig);
loggerConfig.setLevel(level); // set new level
}
context.updateLoggers(); // this causes all Loggers to update information from their LoggerConfig
final List<AppenderRef> refs = config.getLoggerConfig("root").getAppenderRefs();
for (final AppenderRef ref : refs) {
System.out.println(" ref: " + ref + " (level: " + ref.getLevel() + ")");
}
System.out.println();
}
虽然我试图更改级别信息,但仍然有级别跟踪。
此外,在我的程序中,我看到仍然显示跟踪和调试类型的日志
你能帮帮我吗
Class LogUtils -> method initialize()
trace: false
debug: false
level: INFO
'' : root
ref: Console_Appender (level: TRACE)
ref: Routing_Appender (level: TRACE)