diff --git a/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java b/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java index 94f0b89..54eb77b 100644 --- a/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java +++ b/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java @@ -2,9 +2,12 @@ package net.tomatentum.marinara.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.helpers.NOPLoggerFactory; public class LoggerUtil { public static Logger getLogger(String name) { + if (LoggerFactory.getILoggerFactory() instanceof NOPLoggerFactory) + return new SimpleLogger(name); return LoggerFactory.getLogger(name); } diff --git a/lib/src/main/java/net/tomatentum/marinara/util/SimpleLogger.java b/lib/src/main/java/net/tomatentum/marinara/util/SimpleLogger.java new file mode 100644 index 0000000..2b70d73 --- /dev/null +++ b/lib/src/main/java/net/tomatentum/marinara/util/SimpleLogger.java @@ -0,0 +1,56 @@ +package net.tomatentum.marinara.util; + +import org.slf4j.Marker; +import org.slf4j.event.Level; +import org.slf4j.helpers.LegacyAbstractLogger; +import org.slf4j.helpers.MessageFormatter; + +public class SimpleLogger extends LegacyAbstractLogger { + + private String name; + + public SimpleLogger(String name) { + this.name = name; + } + + @Override + public boolean isTraceEnabled() { + return true; + } + + @Override + public boolean isDebugEnabled() { + return true; + } + + @Override + public boolean isInfoEnabled() { + return true; + } + + @Override + public boolean isWarnEnabled() { + return true; + } + + @Override + public boolean isErrorEnabled() { + return true; + } + + @Override + protected String getFullyQualifiedCallerName() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getFullyQualifiedCallerName'"); + } + + @Override + protected void handleNormalizedLoggingCall(Level level, Marker marker, String messagePattern, Object[] arguments, + Throwable throwable) { + String formatted = MessageFormatter.basicArrayFormat(messagePattern, arguments); + System.out.println("[%s] %s => %s".formatted(level, this.name, formatted)); + } + + + +}