Signed-off-by: Minecon724 <minecon724@noreply.git.m724.eu>
This commit is contained in:
parent
e3f34ec46f
commit
352807483c
1 changed files with 34 additions and 10 deletions
|
@ -10,8 +10,11 @@ import eu.m724.tweaks.module.TweaksModule;
|
|||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public class DebugLogger {
|
||||
private DebugLogger() {}
|
||||
static Logger logger;
|
||||
|
||||
public static void info(String message, Object... format) {
|
||||
|
@ -35,20 +38,16 @@ public class DebugLogger {
|
|||
}
|
||||
|
||||
private static void log(Level level, String message, Object... format) {
|
||||
if (logger.getLevel().intValue() > level.intValue()) return;
|
||||
|
||||
var caller = Thread.currentThread().getStackTrace()[3].getClassName();
|
||||
|
||||
if (caller.equals(TweaksModule.class.getName())) {
|
||||
var pcaller = Thread.currentThread().getStackTrace()[4].getClassName();
|
||||
if (pcaller.endsWith("Module"))
|
||||
caller = pcaller;
|
||||
if (!logger.isLoggable(level)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (caller.startsWith("eu.m724.tweaks."))
|
||||
caller = caller.substring(15);
|
||||
message = message.formatted(format);
|
||||
|
||||
message = "[" + caller + "] " + message.formatted(format);
|
||||
if (logger.getLevel().intValue() <= Level.FINE.intValue()) {
|
||||
message = "[" + getCaller() + "] " + message;
|
||||
}
|
||||
|
||||
if (level.intValue() < Level.INFO.intValue()) { // levels below info are never logged even if set for some reason
|
||||
// colors text gray (cyan is close to gray)
|
||||
|
@ -61,5 +60,30 @@ public class DebugLogger {
|
|||
}
|
||||
|
||||
logger.log(level, message);
|
||||
|
||||
}
|
||||
|
||||
private static String getCaller() {
|
||||
String caller = Thread.currentThread().getStackTrace()[4].getClassName();
|
||||
|
||||
// TweaksModule has helper functions that log, we want to label the logs
|
||||
if (caller.equals(TweaksModule.class.getName())) {
|
||||
String pcaller = Thread.currentThread().getStackTrace()[5].getClassName();
|
||||
if (pcaller.endsWith("Module"))
|
||||
caller = pcaller;
|
||||
}
|
||||
|
||||
if (caller.startsWith("eu.m724.tweaks.")) {
|
||||
caller = caller.substring(15);
|
||||
|
||||
String[] packages = caller.split("\\.");
|
||||
|
||||
caller = IntStream.range(0, packages.length - 1)
|
||||
.mapToObj(i -> packages[i].substring(0, 2))
|
||||
.collect(Collectors.joining(".")) + "." + packages[packages.length - 1];
|
||||
// TODO leading dot or no dot?
|
||||
}
|
||||
|
||||
return caller;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue