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

nau*_*cho 22 java logback

我有一些性能单元测试会创建一些我不太关心并且实际上影响性能的不合理数量的日志.我可以以某种方式仅在单元测试的Before方法中提高logback中的日志级别(并在After中恢复)吗?或者有更好的解决方法吗?

ass*_*ias 42

这对我有用:

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);
}
Run Code Online (Sandbox Code Playgroud)

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

setLoggingLevel(Level.ALL);
Run Code Online (Sandbox Code Playgroud)

  • 这些应用程序的制造商不提供API来设置日志级别,而是强迫用户去查找正在使用的实现,这只是草率的编程. (6认同)