【发布时间】:2014-10-17 17:44:38
【问题描述】:
以下是我在 Log4j2 中更改日志记录级别的代码。我从one other stackoverflow thread 得到这个。 当我没有 Log4j2.xml 配置器时,它曾经工作得更早,但由于某种原因,在我开始使用 configurator 后,它已经停止工作了。 日志级别在运行时不再更改。
public MyLogger() {
Logger log = LogManager.getLogger(MyLogger.class.getName());
}
public void setLevel(Level level) {
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration conf = ctx.getConfiguration();
LoggerConfig config = conf.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
config.setLevel(level);
ctx.updateLoggers(conf);
}
这是我的 Lo4j2.xml 配置文件。我也在网上得到了这个。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ERROR">
<Properties>
<Property name="fileName">log/app.log</Property>
<Property name="fileNamePattern">log/app.log-%d{dd-MM-yyyy}-%i.log</Property>
<Property name="logPattern">%d{dd-MM-yyyy HH:mm:ss,SSS} [%t] %-5p %c{2} - %m%n</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${logPattern}"/>
</Console>
<RollingFile name="MyRollingFile" fileName="${fileName}" filePattern="${fileNamePattern}">
<PatternLayout pattern="${logPattern}"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="20MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.cf.re" level="error" additivity="false">
<AppenderRef ref="Console"/>
<AppenderRef ref="MyRollingFile"/>
</Logger>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
有人可以在这里指出问题吗?或者告诉我如何调试这个问题?
【问题讨论】:
标签: java logging configuration log4j2