From 151e7e04eb290ab594c675c258e6468253576f39 Mon Sep 17 00:00:00 2001 From: Glavo Date: Sat, 19 Mar 2022 18:45:34 +0800 Subject: [PATCH] Add a filter policy to logs --- .../java/org/jackhuang/hmcl/util/Logging.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java index 51d00cb8a..5038f47b5 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/Logging.java @@ -26,6 +26,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.text.MessageFormat; import java.util.Date; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import java.util.logging.*; /** @@ -38,9 +41,26 @@ public final class Logging { public static final Logger LOG = Logger.getLogger("HMCL"); private static final ByteArrayOutputStream storedLogs = new ByteArrayOutputStream(IOUtils.DEFAULT_BUFFER_SIZE); + private static final ConcurrentMap forbiddenTokens = new ConcurrentHashMap<>(); + + public static void registerForbiddenToken(String token, String replacement) { + forbiddenTokens.put(token, replacement); + } + + public static String filterForbiddenToken(String message) { + for (Map.Entry entry : forbiddenTokens.entrySet()) { + message = message.replace(entry.getKey(), entry.getValue()); + } + return message; + } + public static void start(Path logFolder) { LOG.setLevel(Level.ALL); LOG.setUseParentHandlers(false); + LOG.setFilter(record -> { + record.setMessage(filterForbiddenToken(record.getMessage())); + return true; + }); try { Files.createDirectories(logFolder);