Add a filter policy to logs
This commit is contained in:
@@ -26,6 +26,9 @@ import java.nio.file.Files;
|
|||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.ConcurrentMap;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,9 +41,26 @@ public final class Logging {
|
|||||||
public static final Logger LOG = Logger.getLogger("HMCL");
|
public static final Logger LOG = Logger.getLogger("HMCL");
|
||||||
private static final ByteArrayOutputStream storedLogs = new ByteArrayOutputStream(IOUtils.DEFAULT_BUFFER_SIZE);
|
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) {
|
public static void start(Path logFolder) {
|
||||||
LOG.setLevel(Level.ALL);
|
LOG.setLevel(Level.ALL);
|
||||||
LOG.setUseParentHandlers(false);
|
LOG.setUseParentHandlers(false);
|
||||||
|
LOG.setFilter(record -> {
|
||||||
|
record.setMessage(filterForbiddenToken(record.getMessage()));
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Files.createDirectories(logFolder);
|
Files.createDirectories(logFolder);
|
||||||
|
|||||||
Reference in New Issue
Block a user