如何在Java中以编程方式更改日志级别?

2022-09-01 15:14:55

我有一些性能单元测试,它们创建了不合理的日志,我并不真正关心这些日志,实际上正在影响性能。我能否以某种方式在 Before 方法中仅针对该单元测试提高 logback 中的日志级别(并在 After 中还原它)?还是有更好的方法来解决这个问题?


答案 1

这对我有用:

public static void setLoggingLevel(Level level) {
    ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
    root.setLevel(level);
}

然后在测试中,如果你想要所有级别,例如:

setLoggingLevel(Level.ALL);

答案 2

推荐