X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.eclipse.ui.workbench%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Fworkbench%2FWorkbenchUiPlugin.java;h=6fd8e5d3b995488294c00d4e84f8349c1197bf7d;hb=0e465414ea4fc79aa4961461efdc0201e1bee154;hp=48ed86142fab608a6ae066a46e16b2eae0c1040a;hpb=21a4ea1fb5380ce1dd763c1ea09067cdd2dfd0f3;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/WorkbenchUiPlugin.java b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/WorkbenchUiPlugin.java index 48ed86142..6fd8e5d3b 100644 --- a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/WorkbenchUiPlugin.java +++ b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/WorkbenchUiPlugin.java @@ -19,6 +19,9 @@ import java.util.ResourceBundle; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.eclipse.core.runtime.ILogListener; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; @@ -26,7 +29,7 @@ import org.osgi.framework.BundleContext; /** * The activator class controls the plug-in life cycle */ -public class WorkbenchUiPlugin extends AbstractUIPlugin { +public class WorkbenchUiPlugin extends AbstractUIPlugin implements ILogListener { private final static Log log = LogFactory.getLog(WorkbenchUiPlugin.class); private ResourceBundle messages; @@ -42,30 +45,24 @@ public class WorkbenchUiPlugin extends AbstractUIPlugin { public WorkbenchUiPlugin() { } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext - * ) - */ public void start(BundleContext context) throws Exception { super.start(context); plugin = this; messages = ResourceBundle.getBundle(ID + ".messages"); - + Platform.addLogListener(this); + if (log.isTraceEnabled()) + log.trace("Eclipse logging now directed to standard logging"); } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext - * ) - */ public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); + try { + Platform.removeLogListener(this); + if (log.isTraceEnabled()) + log.trace("Eclipse logging not directed anymore to standard logging"); + plugin = null; + } finally { + super.stop(context); + } } /** @@ -103,4 +100,17 @@ public class WorkbenchUiPlugin extends AbstractUIPlugin { return null; } + public void logging(IStatus status, String plugin) { + Log pluginLog = LogFactory.getLog(plugin); + Integer severity = status.getSeverity(); + if (severity == IStatus.ERROR) + pluginLog.error(status.getMessage(), status.getException()); + else if (severity == IStatus.WARNING) + pluginLog.warn(status.getMessage(), status.getException()); + else if (severity == IStatus.INFO) + pluginLog.info(status.getMessage(), status.getException()); + else if (severity == IStatus.CANCEL) + if (pluginLog.isDebugEnabled()) + pluginLog.debug(status.getMessage(), status.getException()); + } }