X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=rebuild%2Forg.argeo.tp%2Forg.argeo.ext.slf4j%2Fsrc%2Forg%2Fslf4j%2Fimpl%2FSystemLoggingAdapter.java;fp=rebuild%2Forg.argeo.tp%2Forg.argeo.ext.slf4j%2Fsrc%2Forg%2Fslf4j%2Fimpl%2FSystemLoggingAdapter.java;h=7a6c86555c9d38c5dcd4ed9349e7914f370dd0f7;hb=85bea7e0563de54daffca11633d2248060efec85;hp=0000000000000000000000000000000000000000;hpb=66be0bb227f99b0a3c818c6b00e8d85638e38e0f;p=gpl%2Fargeo-tp.git diff --git a/rebuild/org.argeo.tp/org.argeo.ext.slf4j/src/org/slf4j/impl/SystemLoggingAdapter.java b/rebuild/org.argeo.tp/org.argeo.ext.slf4j/src/org/slf4j/impl/SystemLoggingAdapter.java new file mode 100644 index 0000000..7a6c865 --- /dev/null +++ b/rebuild/org.argeo.tp/org.argeo.ext.slf4j/src/org/slf4j/impl/SystemLoggingAdapter.java @@ -0,0 +1,203 @@ +package org.slf4j.impl; + +import java.lang.System.Logger; +import java.lang.System.Logger.Level; +import java.util.Objects; +import java.util.function.Supplier; + +/** + * A Commons Logging / SLF4J style logging utilities wrapping a standard Java + * platform {@link Logger}. + */ +public interface SystemLoggingAdapter { + Logger getLogger(); + + default boolean isDebugEnabled() { + return getLogger().isLoggable(Level.DEBUG); + } + + default boolean isErrorEnabled() { + return getLogger().isLoggable(Level.ERROR); + } + + default boolean isInfoEnabled() { + return getLogger().isLoggable(Level.INFO); + } + + default boolean isTraceEnabled() { + return getLogger().isLoggable(Level.TRACE); + } + + default boolean isWarnEnabled() { + return getLogger().isLoggable(Level.WARNING); + } + + /* + * TRACE + */ + + default void trace(String message) { + getLogger().log(Level.TRACE, message); + } + + default void trace(Supplier message) { + getLogger().log(Level.TRACE, message); + } + + default void trace(Object message) { + getLogger().log(Level.TRACE, Objects.requireNonNull(message)); + } + + default void trace(String message, Throwable t) { + getLogger().log(Level.TRACE, message, t); + } + + default void trace(Object message, Throwable t) { + trace(Objects.requireNonNull(message).toString(), t); + } + + default void trace(String format, Object... arguments) { + getLogger().log(Level.TRACE, format, arguments); + } + + /* + * DEBUG + */ + + default void debug(String message) { + getLogger().log(Level.DEBUG, message); + } + + default void debug(Supplier message) { + getLogger().log(Level.DEBUG, message); + } + + default void debug(Object message) { + getLogger().log(Level.DEBUG, message); + } + + default void debug(String message, Throwable t) { + getLogger().log(Level.DEBUG, message, t); + } + + default void debug(Object message, Throwable t) { + debug(Objects.requireNonNull(message).toString(), t); + } + + default void debug(String format, Object... arguments) { + getLogger().log(Level.DEBUG, format, arguments); + } + + /* + * INFO + */ + + default void info(String message) { + getLogger().log(Level.INFO, message); + } + + default void info(Supplier message) { + getLogger().log(Level.INFO, message); + } + + default void info(Object message) { + getLogger().log(Level.INFO, message); + } + + default void info(String message, Throwable t) { + getLogger().log(Level.INFO, message, t); + } + + default void info(Object message, Throwable t) { + info(Objects.requireNonNull(message).toString(), t); + } + + default void info(String format, Object... arguments) { + getLogger().log(Level.INFO, format, arguments); + } + + /* + * WARN + */ + + default void warn(String message) { + getLogger().log(Level.WARNING, message); + } + + default void warn(Supplier message) { + getLogger().log(Level.WARNING, message); + } + + default void warn(Object message) { + getLogger().log(Level.WARNING, message); + } + + default void warn(String message, Throwable t) { + getLogger().log(Level.WARNING, message, t); + } + + default void warn(Object message, Throwable t) { + warn(Objects.requireNonNull(message).toString(), t); + } + + default void warn(String format, Object... arguments) { + getLogger().log(Level.WARNING, format, arguments); + } + + /* + * ERROR + */ + + default void error(String message) { + getLogger().log(Level.ERROR, message); + } + + default void error(Supplier message) { + getLogger().log(Level.ERROR, message); + } + + default void error(Object message) { + getLogger().log(Level.ERROR, message); + } + + default void error(String message, Throwable t) { + getLogger().log(Level.ERROR, message, t); + } + + default void error(Object message, Throwable t) { + error(Objects.requireNonNull(message).toString(), t); + } + + default void error(String format, Object... arguments) { + getLogger().log(Level.ERROR, format, arguments); + } + + /* + * STATIC UTILITIES + */ + + static SystemLoggingAdapter getLog(Class clss) { + return getLog(Objects.requireNonNull(clss).getName()); + } + + static SystemLoggingAdapter getLog(String name) { + Logger logger = System.getLogger(Objects.requireNonNull(name)); + return new LoggerWrapper(logger); + } + + /** A trivial implementation wrapping a platform logger. */ + static class LoggerWrapper implements SystemLoggingAdapter { + private final Logger logger; + + LoggerWrapper(Logger logger) { + this.logger = logger; + } + + @Override + public Logger getLogger() { + return logger; + } + + } + +}