]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.init/src/org/argeo/init/logging/ThinLogging.java
SLF4J implementation.
[lgpl/argeo-commons.git] / org.argeo.init / src / org / argeo / init / logging / ThinLogging.java
index e7edc19a89e9858b9a7ee0d1ba9eb0e21f97f45c..2c2b04d2c7952e50006e3b05c39cb0bca8bf7abf 100644 (file)
@@ -22,8 +22,6 @@ import java.util.concurrent.TimeUnit;
 
 /** A thin logging system based on the {@link Logger} framework. */
 class ThinLogging {
-//     private static ThinLogging instance;
-
        private SortedMap<String, ThinLogger> loggers = new TreeMap<>();
        private NavigableMap<String, Level> levels = new TreeMap<>();
 
@@ -31,10 +29,6 @@ class ThinLogging {
        private final LogEntryPublisher publisher;
 
        ThinLogging() {
-//             if (instance != null)
-//                     throw new IllegalStateException("Only one logger finder cann be instantiated");
-//             instance = this;
-
                executor = Executors.newCachedThreadPool((r) -> {
                        Thread t = new Thread(r);
                        t.setDaemon(true);
@@ -46,6 +40,8 @@ class ThinLogging {
                publisher.subscribe(subscriber);
 
                Runtime.getRuntime().addShutdownHook(new Thread(() -> close(), "Log shutdown"));
+
+               setDefaultLevel(Level.INFO);
        }
 
        protected void close() {
@@ -110,7 +106,7 @@ class ThinLogging {
                public void log(Level level, ResourceBundle bundle, String format, Object... params) {
                        // measure timestamp first
                        Instant now = Instant.now();
-                       String msg = MessageFormat.format(format, params);
+                       String msg = params == null ? format : MessageFormat.format(format, params);
                        publisher.log(this, level, bundle, msg, null, now, findCallLocation());
                }
 
@@ -126,9 +122,12 @@ class ThinLogging {
                                        String className = stack[i].getClassName();
                                        switch (className) {
                                        case "java.lang.System$Logger":
+                                       case "java.util.logging.Logger":
                                        case "org.apache.commons.logging.Log":
                                        case "org.osgi.service.log.Logger":
                                        case "org.argeo.cms.Log":
+                                       case "org.slf4j.impl.ArgeoLogger":
+                                       case "org.eclipse.jetty.util.log.Slf4jLog":
                                                lowestLoggerInterface = i;
                                                continue stack;
                                        default: