web-dev-qa-db-ja.com

Javaでプログラムによってログバックログレベルを変更するにはどうすればよいですか?

パフォーマンスユニットテストがいくつかあり、あまり気にせず、実際にパフォーマンスに影響を与えている不当な量のログを作成しています。そのユニットテストのBeforeメソッドでのみlogbackのログレベルを上げる(そしてAfterで復元する)ことはできますか?それとも、それに対処するためのより良い方法はありますか?

22
naumcho

これは私のために働きます:

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);
44
assylias