【问题标题】:How to change logback log level programmatically in Java? [duplicate]如何在 Java 中以编程方式更改 logback 日志级别? [复制]
【发布时间】:2012-03-26 12:12:14
【问题描述】:

我有一些性能单元测试会创建不合理数量的日志,这些日志我并不真正关心并且实际上会影响性能。我能否以某种方式仅在该单元测试的 Before 方法中提高 logback 中的日志级别(并在 After 中恢复它)?或者有没有更好的方法来解决这个问题?

【问题讨论】:

    标签: java logback


    【解决方案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);
    

    【讨论】:

    • 这些应用程序的开发者没有提供 API 来设置日志级别,而是强迫用户去寻找正在使用的实现,这只是草率的编程。
    • 完全同意!
    • 嗨,我正在测试这个解决方案,如果您最初处于 DEBUG 模式并且您设置为 ERROR 级别,但如果您最初处于 ERROR 模式并且您尝试设置为DEBUG模式,好像不行。谢谢....
    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 2012-09-20
    • 2010-10-17
    • 2023-03-16
    相关资源
    最近更新 更多