mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-03-07 17:36:52 +08:00
Add a filter policy to logs
This commit is contained in:
parent
03c634658b
commit
151e7e04eb
@ -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<String, String> forbiddenTokens = new ConcurrentHashMap<>();
|
||||
|
||||
public static void registerForbiddenToken(String token, String replacement) {
|
||||
forbiddenTokens.put(token, replacement);
|
||||
}
|
||||
|
||||
public static String filterForbiddenToken(String message) {
|
||||
for (Map.Entry<String, String> 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);
|
||||
|
Loading…
Reference in New Issue
Block a user