问题
我有以下logback.xml文件:
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
现在,在发生特定事件时,我想以编程方式将根记录器的级别从debugtoerror更改为。我不能使用变量替换,我必须在代码中执行此操作。
如何做呢 ?谢谢。
#1 热门回答(189 赞)
尝试这个:
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.INFO);
请注意,你还可以告诉logback定期扫描你的配置文件,如下所示:
<configuration scan="true" scanPeriod="30 seconds" >
...
</configuration>
#2 热门回答(9 赞)
我假设你正在使用logback(来自配置文件)。
从logback manual,我明白了Logger rootLogger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
也许这可以帮助你改变价值?
#3 热门回答(7 赞)
使用logback 1.1.3我必须执行以下操作(Scala代码):
import ch.qos.logback.classic.Logger
import org.slf4j.LoggerFactory
...
val root: Logger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME).asInstanceOf[Logger]