Use new log levels.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / NodeLogger.java
index 116cf98ab825010478619b31a78a5857ff0ef9f3..947d4d89e6e90a0199cb8dd1ea84bfaceeaf0bf1 100644 (file)
@@ -52,13 +52,14 @@ import org.argeo.node.ArgeoLogListener;
 import org.argeo.node.ArgeoLogger;
 import org.argeo.node.NodeConstants;
 import org.argeo.osgi.useradmin.UserAdminConf;
+import org.osgi.framework.Bundle;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.log.LogEntry;
+import org.osgi.service.log.LogLevel;
 import org.osgi.service.log.LogListener;
 import org.osgi.service.log.LogReaderService;
-import org.osgi.service.log.LogService;
 
 /** Not meant to be used directly in standard log4j config */
 class NodeLogger implements ArgeoLogger, LogListener {
@@ -99,7 +100,6 @@ class NodeLogger implements ArgeoLogger, LogListener {
                }
        };
 
-       @SuppressWarnings("unchecked")
        public NodeLogger(LogReaderService lrs) {
                Enumeration<LogEntry> logEntries = lrs.getLog();
                while (logEntries.hasMoreElements())
@@ -174,23 +174,32 @@ class NodeLogger implements ArgeoLogger, LogListener {
        @Override
        public void logged(LogEntry status) {
                Log pluginLog = LogFactory.getLog(status.getBundle().getSymbolicName());
-               Integer severity = status.getLevel();
-               if (severity == LogService.LOG_ERROR) {
+               LogLevel severity = status.getLogLevel();
+               if (severity.equals(LogLevel.ERROR) && pluginLog.isErrorEnabled()) {
                        // FIXME Fix Argeo TP
                        if (status.getException() instanceof SignatureException)
                                return;
                        pluginLog.error(msg(status), status.getException());
-               } else if (severity == LogService.LOG_WARNING)
-                       pluginLog.warn(msg(status), status.getException());
-               else if (severity == LogService.LOG_INFO && pluginLog.isDebugEnabled())
+               } else if (severity.equals(LogLevel.WARN) && pluginLog.isWarnEnabled()) {
+                       if (pluginLog.isTraceEnabled())
+                               pluginLog.warn(msg(status), status.getException());
+                       else
+                               pluginLog.warn(msg(status));
+               } else if (severity.equals(LogLevel.INFO) && pluginLog.isDebugEnabled())
                        pluginLog.debug(msg(status), status.getException());
-               else if (severity == LogService.LOG_DEBUG && pluginLog.isTraceEnabled())
+               else if (severity.equals(LogLevel.DEBUG) && pluginLog.isTraceEnabled())
+                       pluginLog.trace(msg(status), status.getException());
+               else if (severity.equals(LogLevel.TRACE) && pluginLog.isTraceEnabled())
                        pluginLog.trace(msg(status), status.getException());
        }
 
        private String msg(LogEntry status) {
                StringBuilder sb = new StringBuilder();
                sb.append(status.getMessage());
+               Bundle bundle = status.getBundle();
+               if (bundle != null) {
+                       sb.append(" '" + bundle.getSymbolicName() + "'");
+               }
                ServiceReference<?> sr = status.getServiceReference();
                if (sr != null) {
                        sb.append(' ');