如何以编程方式更改日志的根日志记录级别以进行日志备份

2022-08-31 07:23:39

我有以下日志备份.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>

现在,在发生特定事件时,我想以编程方式将根记录器的级别从调试更改为错误。我不能使用变量替换,我必须在代码中执行此操作。

怎么做?谢谢。


答案 1

试试这个:

import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;

Logger root = (Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.INFO);

请注意,您还可以告诉 logback 定期扫描您的配置文件,如下所示:

<configuration scan="true" scanPeriod="30 seconds" > 
  ...
</configuration> 

答案 2

我假设您正在使用日志备份(从配置文件中)。

日志回滚手册,我看到

Logger rootLogger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);

也许这可以帮助您更改值?


推荐