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;
/**
* 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;
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);
+ }
}
/**
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());
+ }
}