From ae38a54f117d0c3d25cbf33b8aa5d265edbc7345 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Wed, 10 Nov 2021 12:34:29 +0100 Subject: [PATCH] Add util for logger to log by threadname Helpful for debugging --- common/src/main/java/bisq/common/app/Log.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/common/src/main/java/bisq/common/app/Log.java b/common/src/main/java/bisq/common/app/Log.java index efef9ec0e3..2879d35bf4 100644 --- a/common/src/main/java/bisq/common/app/Log.java +++ b/common/src/main/java/bisq/common/app/Log.java @@ -18,18 +18,22 @@ package bisq.common.app; import org.slf4j.LoggerFactory; +import org.slf4j.Marker; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.classic.turbo.TurboFilter; import ch.qos.logback.core.rolling.FixedWindowRollingPolicy; import ch.qos.logback.core.rolling.RollingFileAppender; import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy; +import ch.qos.logback.core.spi.FilterReply; import ch.qos.logback.core.util.FileSize; public class Log { + public static final String JAVA_FX_THREAD_NAME = "JavaFX Application Thread"; private static Logger logbackLogger; public static final Level DEFAULT_LOG_LEVEL = Level.INFO; @@ -74,4 +78,19 @@ public class Log { public static void setCustomLogLevel(String pattern, Level logLevel) { ((Logger) LoggerFactory.getLogger(pattern)).setLevel(logLevel); } + + public static void filterByThreadName(String threadName) { + logbackLogger.getLoggerContext().addTurboFilter(new TurboFilter() { + @Override + public FilterReply decide(Marker marker, Logger logger, Level level, String format, + Object[] params, Throwable t) { + return threadName.equals(Thread.currentThread().getName()) ? + FilterReply.ACCEPT : FilterReply.DENY; + } + }); + } + + public static void clearFilters() { + logbackLogger.getLoggerContext().resetTurboFilterList(); + } }