X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/8c1b5d54f7f5ea0844391df4464a2210b101c019..3533500b736ce382b9cc1d53d29ff267324bf4be:/src/main/java/org/asamk/signal/logging/LogConfigurator.java diff --git a/src/main/java/org/asamk/signal/logging/LogConfigurator.java b/src/main/java/org/asamk/signal/logging/LogConfigurator.java index 83646d7e..f6e23b70 100644 --- a/src/main/java/org/asamk/signal/logging/LogConfigurator.java +++ b/src/main/java/org/asamk/signal/logging/LogConfigurator.java @@ -6,6 +6,7 @@ import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.PatternLayout; +import ch.qos.logback.classic.jul.LevelChangePropagator; import ch.qos.logback.classic.spi.Configurator; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.ConsoleAppender; @@ -34,10 +35,14 @@ public class LogConfigurator extends ContextAwareBase implements Configurator { LogConfigurator.scrubSensitiveInformation = scrubSensitiveInformation; } + @Override public ExecutionStatus configure(LoggerContext lc) { + lc.addListener(new LevelChangePropagator() {{ + setContext(lc); + }}); final var rootLogger = lc.getLogger(Logger.ROOT_LOGGER_NAME); - final var defaultLevel = verboseLevel > 1 ? Level.ALL : verboseLevel > 0 ? Level.INFO : Level.WARN; + final var defaultLevel = verboseLevel > 2 ? Level.TRACE : verboseLevel > 0 ? Level.INFO : Level.WARN; rootLogger.setLevel(defaultLevel); final var consoleLayout = verboseLevel == 0 || logFile != null @@ -46,15 +51,24 @@ public class LogConfigurator extends ContextAwareBase implements Configurator { final var consoleAppender = createLoggingConsoleAppender(lc, createLayoutWrappingEncoder(consoleLayout)); rootLogger.addAppender(consoleAppender); - lc.getLogger("org.asamk").setLevel(verboseLevel > 1 ? Level.ALL : verboseLevel > 0 ? Level.DEBUG : Level.INFO); + lc.getLogger("org.asamk") + .setLevel(verboseLevel > 1 ? Level.TRACE : verboseLevel > 0 ? Level.DEBUG : Level.INFO); + lc.getLogger("org.asamk.Signal") + .setLevel(verboseLevel > 2 ? Level.TRACE : verboseLevel > 1 ? Level.INFO : Level.WARN); + lc.getLogger("com.zaxxer.hikari.pool.PoolBase") + .setLevel(verboseLevel > 2 ? Level.TRACE : verboseLevel > 1 ? Level.INFO : Level.WARN); + lc.getLogger("org.sqlite.core.NativeDB") + .setLevel(verboseLevel > 3 ? Level.TRACE : verboseLevel > 1 ? Level.INFO : Level.WARN); if (logFile != null) { consoleAppender.addFilter(new Filter<>() { @Override public FilterReply decide(final ILoggingEvent event) { - return event.getLevel().isGreaterOrEqual(Level.WARN) || ( - event.getLevel().isGreaterOrEqual(Level.INFO) && event.getLoggerName() - .startsWith("org.asamk") + return !"LibSignal".equals(event.getLoggerName()) && ( + event.getLevel().isGreaterOrEqual(Level.WARN) || ( + event.getLevel().isGreaterOrEqual(Level.INFO) && event.getLoggerName() + .startsWith("org.asamk") + ) ) ? FilterReply.NEUTRAL : FilterReply.DENY;