From ea607cdd02d1915f6b7117e430e7efeeaedab651 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Sat, 20 Feb 2021 21:04:58 +0100 Subject: [PATCH] Add slf4j delegate --- pom.xml | 5 + .../java/org/warp/commonutils/log/Level.java | 9 + .../java/org/warp/commonutils/log/Logger.java | 417 ++++++++++++++++++ .../warp/commonutils/log/LoggerFactory.java | 36 ++ .../java/org/warp/commonutils/log/Logs.java | 70 +++ 5 files changed, 537 insertions(+) create mode 100644 src/main/java/org/warp/commonutils/log/Level.java create mode 100644 src/main/java/org/warp/commonutils/log/Logger.java create mode 100644 src/main/java/org/warp/commonutils/log/LoggerFactory.java create mode 100644 src/main/java/org/warp/commonutils/log/Logs.java diff --git a/pom.xml b/pom.xml index 9278ebc..dd48abe 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,11 @@ + + org.slf4j + slf4j-api + 1.7.30 + it.unimi.dsi fastutil diff --git a/src/main/java/org/warp/commonutils/log/Level.java b/src/main/java/org/warp/commonutils/log/Level.java new file mode 100644 index 0000000..7e05ea9 --- /dev/null +++ b/src/main/java/org/warp/commonutils/log/Level.java @@ -0,0 +1,9 @@ +package org.warp.commonutils.log; + +public enum Level { + TRACE, + DEBUG, + INFO, + WARN, + ERROR +} diff --git a/src/main/java/org/warp/commonutils/log/Logger.java b/src/main/java/org/warp/commonutils/log/Logger.java new file mode 100644 index 0000000..054ee3e --- /dev/null +++ b/src/main/java/org/warp/commonutils/log/Logger.java @@ -0,0 +1,417 @@ +package org.warp.commonutils.log; + +import org.slf4j.Marker; + +public class Logger implements org.slf4j.Logger { + + private final org.slf4j.Logger loggerDelegate; + + public Logger(org.slf4j.Logger logger) { + this.loggerDelegate = logger; + } + + @Override + public String getName() { + return loggerDelegate.getName(); + } + + @Override + public boolean isTraceEnabled() { + return Logs.isTraceEnabled() && loggerDelegate.isTraceEnabled(); + } + + @Override + public void trace(String s) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(s); + } + } + + @Override + public void trace(String s, Object o) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(s, o); + } + } + + @Override + public void trace(String s, Object o, Object o1) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(s, o, o1); + } + } + + @Override + public void trace(String s, Object... objects) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(s, objects); + } + } + + @Override + public void trace(String s, Throwable throwable) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(s, throwable); + } + } + + @Override + public boolean isTraceEnabled(Marker marker) { + return Logs.isTraceEnabled() && loggerDelegate.isTraceEnabled(marker); + } + + @Override + public void trace(Marker marker, String s) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(marker, s); + } + } + + @Override + public void trace(Marker marker, String s, Object o) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(marker, s, o); + } + } + + @Override + public void trace(Marker marker, String s, Object o, Object o1) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(marker, s, o, o1); + } + } + + @Override + public void trace(Marker marker, String s, Object... objects) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(marker, s, objects); + } + } + + @Override + public void trace(Marker marker, String s, Throwable throwable) { + if (Logs.isTraceEnabled()) { + loggerDelegate.trace(marker, s, throwable); + } + } + + @Override + public boolean isDebugEnabled() { + return Logs.isDebugEnabled() && loggerDelegate.isDebugEnabled(); + } + + @Override + public void debug(String s) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(s); + } + } + + @Override + public void debug(String s, Object o) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(s, o); + } + } + + @Override + public void debug(String s, Object o, Object o1) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(s, o, o1); + } + } + + @Override + public void debug(String s, Object... objects) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(s, objects); + } + } + + @Override + public void debug(String s, Throwable throwable) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(s, throwable); + } + } + + @Override + public boolean isDebugEnabled(Marker marker) { + return Logs.isDebugEnabled() && loggerDelegate.isDebugEnabled(marker); + } + + @Override + public void debug(Marker marker, String s) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(marker, s); + } + } + + @Override + public void debug(Marker marker, String s, Object o) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(marker, s, o); + } + } + + @Override + public void debug(Marker marker, String s, Object o, Object o1) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(marker, s, o, o1); + } + } + + @Override + public void debug(Marker marker, String s, Object... objects) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(marker, s, objects); + } + } + + @Override + public void debug(Marker marker, String s, Throwable throwable) { + if (Logs.isDebugEnabled()) { + loggerDelegate.debug(marker, s, throwable); + } + } + + @Override + public boolean isInfoEnabled() { + return Logs.isInfoEnabled() && loggerDelegate.isInfoEnabled(); + } + + @Override + public void info(String s) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(s); + } + } + + @Override + public void info(String s, Object o) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(s, o); + } + } + + @Override + public void info(String s, Object o, Object o1) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(s, o, o1); + } + } + + @Override + public void info(String s, Object... objects) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(s, objects); + } + } + + @Override + public void info(String s, Throwable throwable) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(s, throwable); + } + } + + @Override + public boolean isInfoEnabled(Marker marker) { + return Logs.isInfoEnabled() && loggerDelegate.isInfoEnabled(marker); + } + + @Override + public void info(Marker marker, String s) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(marker, s); + } + } + + @Override + public void info(Marker marker, String s, Object o) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(marker, s, o); + } + } + + @Override + public void info(Marker marker, String s, Object o, Object o1) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(marker, s, o, o1); + } + } + + @Override + public void info(Marker marker, String s, Object... objects) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(marker, s, objects); + } + } + + @Override + public void info(Marker marker, String s, Throwable throwable) { + if (Logs.isInfoEnabled()) { + loggerDelegate.info(marker, s, throwable); + } + } + + @Override + public boolean isWarnEnabled() { + return Logs.isWarnEnabled() && loggerDelegate.isWarnEnabled(); + } + + @Override + public void warn(String s) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(s); + } + } + + @Override + public void warn(String s, Object o) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(s, o); + } + } + + @Override + public void warn(String s, Object... objects) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(s, objects); + } + } + + @Override + public void warn(String s, Object o, Object o1) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(s, o, o1); + } + } + + @Override + public void warn(String s, Throwable throwable) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(s, throwable); + } + } + + @Override + public boolean isWarnEnabled(Marker marker) { + return Logs.isWarnEnabled() && loggerDelegate.isWarnEnabled(marker); + } + + @Override + public void warn(Marker marker, String s) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(marker, s); + } + } + + @Override + public void warn(Marker marker, String s, Object o) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(marker, s, o); + } + } + + @Override + public void warn(Marker marker, String s, Object o, Object o1) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(marker, s, o, o1); + } + } + + @Override + public void warn(Marker marker, String s, Object... objects) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(marker, s, objects); + } + } + + @Override + public void warn(Marker marker, String s, Throwable throwable) { + if (Logs.isWarnEnabled()) { + loggerDelegate.warn(marker, s, throwable); + } + } + + @Override + public boolean isErrorEnabled() { + return Logs.isErrorEnabled() && loggerDelegate.isErrorEnabled(); + } + + @Override + public void error(String s) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(s); + } + } + + @Override + public void error(String s, Object o) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(s, o); + } + } + + @Override + public void error(String s, Object o, Object o1) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(s, o, o1); + } + } + + @Override + public void error(String s, Object... objects) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(s, objects); + } + } + + @Override + public void error(String s, Throwable throwable) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(s, throwable); + } + } + + @Override + public boolean isErrorEnabled(Marker marker) { + return Logs.isErrorEnabled() && loggerDelegate.isErrorEnabled(marker); + } + + @Override + public void error(Marker marker, String s) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(marker, s); + } + } + + @Override + public void error(Marker marker, String s, Object o) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(marker, s, o); + } + } + + @Override + public void error(Marker marker, String s, Object o, Object o1) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(marker, s, o, o1); + } + } + + @Override + public void error(Marker marker, String s, Object... objects) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(marker, s, objects); + } + } + + @Override + public void error(Marker marker, String s, Throwable throwable) { + if (Logs.isErrorEnabled()) { + loggerDelegate.error(marker, s, throwable); + } + } +} diff --git a/src/main/java/org/warp/commonutils/log/LoggerFactory.java b/src/main/java/org/warp/commonutils/log/LoggerFactory.java new file mode 100644 index 0000000..499acdd --- /dev/null +++ b/src/main/java/org/warp/commonutils/log/LoggerFactory.java @@ -0,0 +1,36 @@ +package org.warp.commonutils.log; + +/** + * Convenient equivalents of the static functions on SLF4J's {@link org.slf4j.LoggerFactory}. + * + * These return an SLF4J Ext {@link Logger} decorating the SLF4J {@link org.slf4j.Logger} that would be returned by the equivalent + * function on SLF4J's {@link org.slf4j.LoggerFactory}. + */ +public final class LoggerFactory { + + /** + * Return a {@link Logger} decorating the SLF4J {@link org.slf4j.Logger} returned by a call to + * SLF4J's {@link org.slf4j.LoggerFactory#getLogger(Class)}. + * + * @param aClass the returned logger will be named after clazz + * @return logger + */ + public static Logger getLogger(final Class aClass) { + return new Logger(org.slf4j.LoggerFactory.getLogger(aClass)); + } + + /** + * Return a {@link Logger} decorating the SLF4J {@link org.slf4j.Logger} returned by a call to + * SLF4J's {@link org.slf4j.LoggerFactory#getLogger(String)}. + * + * @param loggerName The name of the logger. + * @return logger + */ + public static Logger getLogger(final String loggerName) { + return new Logger(org.slf4j.LoggerFactory.getLogger(loggerName)); + } + + private LoggerFactory() { + throw new UnsupportedOperationException("Not instantiable"); + } +} diff --git a/src/main/java/org/warp/commonutils/log/Logs.java b/src/main/java/org/warp/commonutils/log/Logs.java new file mode 100644 index 0000000..7a93959 --- /dev/null +++ b/src/main/java/org/warp/commonutils/log/Logs.java @@ -0,0 +1,70 @@ +package org.warp.commonutils.log; + +public class Logs { + + private static boolean traceEnabled; + private static boolean debugEnabled; + private static boolean infoEnabled; + private static boolean warnEnabled; + private static Level rootLevel; + + public static void setRootLevel(Level level) { + rootLevel = level; + switch (level) { + case ERROR: + traceEnabled = false; + debugEnabled = false; + infoEnabled = false; + warnEnabled = false; + break; + case WARN: + traceEnabled = false; + debugEnabled = false; + infoEnabled = false; + warnEnabled = true; + break; + case INFO: + traceEnabled = false; + debugEnabled = false; + infoEnabled = true; + warnEnabled = true; + break; + case DEBUG: + traceEnabled = false; + debugEnabled = true; + infoEnabled = true; + warnEnabled = true; + break; + case TRACE: + traceEnabled = true; + debugEnabled = true; + infoEnabled = true; + warnEnabled = true; + break; + } + } + + public static Level getRootLevel() { + return rootLevel; + } + + public static boolean isTraceEnabled() { + return traceEnabled; + } + + public static boolean isDebugEnabled() { + return debugEnabled; + } + + public static boolean isInfoEnabled() { + return infoEnabled; + } + + public static boolean isWarnEnabled() { + return warnEnabled; + } + + public static boolean isErrorEnabled() { + return true; + } +}