我有以下记录.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>

现在,在发生特定事件时,我希望以编程方式将根记录器的级别从debug更改为error.我不能使用变量替换,我必须在代码中这样做.

怎么做得到呢?谢谢.

推荐答案

试试这个:

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> 

Java相关问答推荐

在Java 11+中,我们可以在不编译多个文件的情况下以某种方式执行吗?

无法从Spring Boot应用程序连接到SQL Docker服务器

具有默认分支的JUnit代码覆盖率切换声明

使用包私有构造函数强制子类Java类

Javascript在边界中心调整ImageView大小

如何让JFileChooser(DIRECTORIES_ONLY)从FolderName中的空白开始?

Kubernetes的Java客户端检索状态.处于终止状态的Pod的阶段';正在运行';

Java记录的不同序列化/反序列化

如何确定springboot在将json字段转换为Dto时如何处理它?

Spring data JPA/Hibernate根据id获取一个列值

Java流传输一个列表并创建单个对象

Arrays.hashcode(int[])为不同的元素提供相同的散列

如何使用log4j2(Json)记录由";异常引起的所有";?

如何生成指定范围内的11位序列号?

将双倍转换为百分比

在线程Java中调用Interrupt()之后调用Join()

无法使用Open WebStart Java 8运行jnlp

让标签占用JavaFX中HBox的所有可用空间

如何使用Rascal Evaluator从编译的JAR访问Rascal函数?

如何使JOOQ渐变脚本不重新创建表未更改的类?