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.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
public class DebugLogger {
|
public class DebugLogger {
|
||||||
|
private DebugLogger() {}
|
||||||
static Logger logger;
|
static Logger logger;
|
||||||
|
|
||||||
public static void info(String message, Object... format) {
|
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) {
|
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 (!logger.isLoggable(level)) {
|
||||||
|
return;
|
||||||
if (caller.equals(TweaksModule.class.getName())) {
|
|
||||||
var pcaller = Thread.currentThread().getStackTrace()[4].getClassName();
|
|
||||||
if (pcaller.endsWith("Module"))
|
|
||||||
caller = pcaller;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (caller.startsWith("eu.m724.tweaks."))
|
message = message.formatted(format);
|
||||||
caller = caller.substring(15);
|
|
||||||
|
|
||||||
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
|
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)
|
// colors text gray (cyan is close to gray)
|
||||||
|
|
@ -61,5 +60,30 @@ public class DebugLogger {
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.log(level, message);
|
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