X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FNodeLogger.java;h=947d4d89e6e90a0199cb8dd1ea84bfaceeaf0bf1;hb=09d97fb1d28c9bbe4b2ec9fc511adf5127a256c1;hp=045229ce1fc81eadfe7fb8bade2e317c4f99270f;hpb=4613b5b46877a9013c282daabc5692efa5692afb;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeLogger.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeLogger.java index 045229ce1..947d4d89e 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeLogger.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeLogger.java @@ -16,6 +16,7 @@ package org.argeo.cms.internal.kernel; import java.io.IOException; +import java.net.URI; import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.file.Paths; @@ -51,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 { @@ -98,7 +100,6 @@ class NodeLogger implements ArgeoLogger, LogListener { } }; - @SuppressWarnings("unchecked") public NodeLogger(LogReaderService lrs) { Enumeration logEntries = lrs.getLog(); while (logEntries.hasMoreElements()) @@ -115,7 +116,11 @@ class NodeLogger implements ArgeoLogger, LogListener { log4jConfiguration = log4jConfiguration.substring("file:".length()); } try { - Path log4jconfigPath = Paths.get(log4jConfiguration); + Path log4jconfigPath; + if (log4jConfiguration.startsWith("file:")) + log4jconfigPath = Paths.get(new URI(log4jConfiguration)); + else + log4jconfigPath = Paths.get(log4jConfiguration); Thread log4jConfWatcher = new Log4jConfWatcherThread(log4jconfigPath); log4jConfWatcher.start(); } catch (Exception e) { @@ -169,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(' ');