X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.cms%2Fsrc%2Forg%2Fargeo%2Fapi%2Fcms%2FCmsLog.java;h=1c88441f77a5b2febaa1bf43840760458f5f780f;hb=2a5c276f3a47d31dfb4d7b247cca58cd317bb128;hp=3454dfc613745936247c23a93653168994b2ad02;hpb=ee0a9f240a5da3a1437dda5abe7a1c46c5a3a8e9;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.cms/src/org/argeo/api/cms/CmsLog.java b/org.argeo.api.cms/src/org/argeo/api/cms/CmsLog.java index 3454dfc61..1c88441f7 100644 --- a/org.argeo.api.cms/src/org/argeo/api/cms/CmsLog.java +++ b/org.argeo.api.cms/src/org/argeo/api/cms/CmsLog.java @@ -1,16 +1,17 @@ package org.argeo.api.cms; import java.lang.System.Logger; -import java.lang.System.Logger.Level; import java.util.Objects; import java.util.function.Supplier; +import org.argeo.api.cms.SystemLogger.Level; + /** * A Commons Logging / SLF4J style logging utilities wrapping a standard Java * platform {@link Logger}. */ public interface CmsLog { - Logger getLogger(); + SystemLogger getLogger(); default boolean isDebugEnabled() { return getLogger().isLoggable(Level.DEBUG); @@ -181,23 +182,13 @@ public interface CmsLog { } static CmsLog 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 CmsLog { - private final Logger logger; - - LoggerWrapper(Logger logger) { - this.logger = logger; + SystemLogger logger; + try { + logger = new RealSystemLogger(name); + } catch (NoSuchMethodError | NoClassDefFoundError e) {// Android + logger = new FallBackSystemLogger(); } - - @Override - public Logger getLogger() { - return logger; - } - + return new LoggerWrapper(logger); } }