X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FNodeLogger.java;h=0b410379402af36dfaa35fe21b75b3d7c5822be5;hb=b71546ddc74d6ca49d252806aafd491c75dfe1fb;hp=158bac70a40159c1bebcb353adf245b355184edd;hpb=71196c25959b53964edf87aeb4387ed8b11b4868;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 158bac70a..0b4103794 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 @@ -23,17 +23,10 @@ import java.util.Properties; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.log4j.AppenderSkeleton; -import org.apache.log4j.Level; -import org.apache.log4j.LogManager; -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.apache.log4j.spi.LoggingEvent; -import org.argeo.api.ArgeoLogListener; -import org.argeo.api.ArgeoLogger; -import org.argeo.api.NodeConstants; +import org.argeo.api.cms.CmsConstants; +import org.argeo.api.cms.CmsLog; +import org.argeo.cms.ArgeoLogListener; +import org.argeo.cms.ArgeoLogger; import org.argeo.cms.CmsException; import org.argeo.cms.auth.CurrentUser; import org.argeo.osgi.useradmin.UserAdminConf; @@ -51,14 +44,11 @@ class NodeLogger implements ArgeoLogger, LogListener { /** Internal debug for development purposes. */ private static Boolean debug = false; - // private final static Log log = LogFactory.getLog(NodeLogger.class); - private Boolean disabled = false; private String level = null; - private Level log4jLevel = null; - // private Layout layout; +// private Level log4jLevel = null; private Properties configuration; @@ -86,30 +76,32 @@ class NodeLogger implements ArgeoLogger, LogListener { }; public NodeLogger(LogReaderService lrs) { - Enumeration logEntries = lrs.getLog(); - while (logEntries.hasMoreElements()) - logged(logEntries.nextElement()); - lrs.addLogListener(this); - - // configure log4j watcher - String log4jConfiguration = KernelUtils.getFrameworkProp("log4j.configuration"); - if (log4jConfiguration != null && log4jConfiguration.startsWith("file:")) { - if (log4jConfiguration.contains("..")) { - if (log4jConfiguration.startsWith("file://")) - log4jConfiguration = log4jConfiguration.substring("file://".length()); - else if (log4jConfiguration.startsWith("file:")) - log4jConfiguration = log4jConfiguration.substring("file:".length()); - } - try { - 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) { - stdErr("Badly formatted log4j configuration URI " + log4jConfiguration + ": " + e.getMessage()); + if (lrs != null) { + Enumeration logEntries = lrs.getLog(); + while (logEntries.hasMoreElements()) + logged(logEntries.nextElement()); + lrs.addLogListener(this); + + // configure log4j watcher + String log4jConfiguration = KernelUtils.getFrameworkProp("log4j.configuration"); + if (log4jConfiguration != null && log4jConfiguration.startsWith("file:")) { + if (log4jConfiguration.contains("..")) { + if (log4jConfiguration.startsWith("file://")) + log4jConfiguration = log4jConfiguration.substring("file://".length()); + else if (log4jConfiguration.startsWith("file:")) + log4jConfiguration = log4jConfiguration.substring("file:".length()); + } + try { + 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) { + stdErr("Badly formatted log4j configuration URI " + log4jConfiguration + ": " + e.getMessage()); + } } } } @@ -124,7 +116,7 @@ class NodeLogger implements ArgeoLogger, LogListener { // setLayout(new PatternLayout(pattern)); appender = new AppenderImpl(); reloadConfiguration(); - Logger.getRootLogger().addAppender(appender); +// Logger.getRootLogger().addAppender(appender); logDispatcherThread = new LogDispatcherThread(); logDispatcherThread.start(); @@ -134,7 +126,7 @@ class NodeLogger implements ArgeoLogger, LogListener { } public void destroy() throws Exception { - Logger.getRootLogger().removeAppender(appender); +// Logger.getRootLogger().removeAppender(appender); allUsersListeners.clear(); for (List lst : userListeners.values()) lst.clear(); @@ -158,7 +150,7 @@ class NodeLogger implements ArgeoLogger, LogListener { // @Override public void logged(LogEntry status) { - Log pluginLog = LogFactory.getLog(status.getBundle().getSymbolicName()); + CmsLog pluginLog = CmsLog.getLog(status.getBundle().getSymbolicName()); LogLevel severity = status.getLogLevel(); if (severity.equals(LogLevel.ERROR) && pluginLog.isErrorEnabled()) { // FIXME Fix Argeo TP @@ -197,9 +189,9 @@ class NodeLogger implements ArgeoLogger, LogListener { } else { sb.append(arrayToString(objectClasses)); } - Object cn = sr.getProperty(NodeConstants.CN); + Object cn = sr.getProperty(CmsConstants.CN); if (cn != null) - sb.append(" " + NodeConstants.CN + ": " + cn); + sb.append(" " + CmsConstants.CN + ": " + cn); Object factoryPid = sr.getProperty(ConfigurationAdmin.SERVICE_FACTORYPID); if (factoryPid != null) sb.append(" " + ConfigurationAdmin.SERVICE_FACTORYPID + ": " + factoryPid); @@ -351,8 +343,8 @@ class NodeLogger implements ArgeoLogger, LogListener { */ protected void reloadConfiguration() { if (configuration != null) { - LogManager.resetConfiguration(); - PropertyConfigurator.configure(configuration); +// LogManager.resetConfiguration(); +// PropertyConfigurator.configure(configuration); } } @@ -364,18 +356,18 @@ class NodeLogger implements ArgeoLogger, LogListener { return; if (level != null && !level.trim().equals("")) { - if (log4jLevel == null || !log4jLevel.toString().equals(level)) - try { - log4jLevel = Level.toLevel(level); - } catch (Exception e) { - System.err.println("Log4j level could not be set for level '" + level + "', resetting it to null."); - e.printStackTrace(); - level = null; - } - - if (log4jLevel != null && !event.getLoggingEvent().getLevel().isGreaterOrEqual(log4jLevel)) { - return; - } +// if (log4jLevel == null || !log4jLevel.toString().equals(level)) +// try { +// log4jLevel = Level.toLevel(level); +// } catch (Exception e) { +// System.err.println("Log4j level could not be set for level '" + level + "', resetting it to null."); +// e.printStackTrace(); +// level = null; +// } +// +// if (log4jLevel != null && !event.getLoggingEvent().getLevel().isGreaterOrEqual(log4jLevel)) { +// return; +// } } try { @@ -402,12 +394,12 @@ class NodeLogger implements ArgeoLogger, LogListener { } protected void dispatchEvent(ArgeoLogListener logListener, LogEvent evt) { - LoggingEvent event = evt.getLoggingEvent(); - logListener.appendLog(evt.getUsername(), event.getTimeStamp(), event.getLevel().toString(), - event.getLoggerName(), event.getThreadName(), event.getMessage(), event.getThrowableStrRep()); +// LoggingEvent event = evt.getLoggingEvent(); +// logListener.appendLog(evt.getUsername(), event.getTimeStamp(), event.getLevel().toString(), +// event.getLoggerName(), event.getThreadName(), event.getMessage(), event.getThrowableStrRep()); } - private class AppenderImpl extends AppenderSkeleton { + private class AppenderImpl { //extends AppenderSkeleton { public boolean requiresLayout() { return false; } @@ -415,17 +407,17 @@ class NodeLogger implements ArgeoLogger, LogListener { public void close() { } - @Override - protected void append(LoggingEvent event) { - if (events != null) { - try { - String username = CurrentUser.getUsername(); - events.put(new LogEvent(username, event)); - } catch (InterruptedException e) { - // silent - } - } - } +// @Override +// protected void append(LoggingEvent event) { +// if (events != null) { +// try { +// String username = CurrentUser.getUsername(); +// events.put(new LogEvent(username, event)); +// } catch (InterruptedException e) { +// // silent +// } +// } +// } } @@ -473,36 +465,36 @@ class NodeLogger implements ArgeoLogger, LogListener { private class LogEvent { private final String username; - private final LoggingEvent loggingEvent; +// private final LoggingEvent loggingEvent; - public LogEvent(String username, LoggingEvent loggingEvent) { + public LogEvent(String username) { super(); this.username = username; - this.loggingEvent = loggingEvent; - } - - @Override - public int hashCode() { - return loggingEvent.hashCode(); +// this.loggingEvent = loggingEvent; } - @Override - public boolean equals(Object obj) { - return loggingEvent.equals(obj); - } - - @Override - public String toString() { - return username + "@ " + loggingEvent.toString(); - } +// @Override +// public int hashCode() { +// return loggingEvent.hashCode(); +// } +// +// @Override +// public boolean equals(Object obj) { +// return loggingEvent.equals(obj); +// } +// +// @Override +// public String toString() { +// return username + "@ " + loggingEvent.toString(); +// } public String getUsername() { return username; } - public LoggingEvent getLoggingEvent() { - return loggingEvent; - } +// public LoggingEvent getLoggingEvent() { +// return loggingEvent; +// } } @@ -530,7 +522,7 @@ class NodeLogger implements ArgeoLogger, LogListener { if (log4jConfigurationPath.equals(parentDir.resolve(changed))) { if (isInternalDebugEnabled()) debug(log4jConfigurationPath + " has changed, reloading."); - PropertyConfigurator.configure(log4jConfigurationPath.toUri().toURL()); +// PropertyConfigurator.configure(log4jConfigurationPath.toUri().toURL()); } } // reset the key