1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-08 09:35:23 +02:00

Bug 148484 - Refactor logging plugin

This commit is contained in:
David Dykstal 2006-06-25 02:46:24 +00:00
parent 568e8c931c
commit 891609edee
21 changed files with 888 additions and 1199 deletions

View file

@ -12,15 +12,18 @@ Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
Contributors: Contributors:
{Name} (company) - description of contribution. Michael Berger (IBM Canada) - 148434 Better user assistance for logging preference page.
--> -->
<?NLS TYPE="org.eclipse.help.contexts"?> <?NLS TYPE="org.eclipse.help.contexts"?>
<contexts> <contexts>
<!-- RSE logging -->
<context id="pref0000"> <context id="rsel0000">
<description>Settings for the logging of messages.</description> <description>This is the RSE Logging preference page.
You can specify what severity of messages you wish to log - from informational messages, to warnings, to errors.
</context> The debug setting provides the most detail.
Messages are logged to the .log file in the .metadata folder of the workspace.
</description>
</context>
</contexts> </contexts>

View file

@ -9,5 +9,6 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime org.eclipse.core.runtime
Eclipse-LazyStart: true Eclipse-LazyStart: true
Export-Package: org.eclipse.rse.logging, Export-Package: org.eclipse.rse.logging,
org.eclipse.rse.logging.performance org.eclipse.rse.logging.performance,
org.eclipse.rse.logging.ui
Bundle-Vendor: Eclipse.org Bundle-Vendor: Eclipse.org

View file

@ -1,5 +1,4 @@
bin.includes = HelpContexts.xml,\ bin.includes = HelpContexts.xml,\
RemoteSystemsLogging.properties,\
plugin.properties,\ plugin.properties,\
plugin.xml,\ plugin.xml,\
style/,\ style/,\

View file

@ -31,7 +31,7 @@ Contributors:
<!-- Preferences --> <!-- Preferences -->
<extension point="org.eclipse.core.runtime.preferences"> <extension point="org.eclipse.core.runtime.preferences">
<initializer class="org.eclipse.rse.logging.LoggingPreferenceInitializer"/> <initializer class="org.eclipse.rse.internal.logging.LoggingPreferenceInitializer"/>
</extension> </extension>
</plugin> </plugin>

View file

@ -1,57 +0,0 @@
/********************************************************************************
* Copyright (c) 2002, 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.internal.logging;
import java.util.Hashtable;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.rse.logging.Logger;
public class LoggerController {
private static Hashtable pluginTable = new Hashtable();
/**
* Return an previously cached Logger instance.<br>
* It will return null if no Logger instance has been created
* for this plugin before.
*/
public static Logger getInst(Plugin plugin) {
if (pluginTable.containsKey(plugin))
return (Logger) pluginTable.get(plugin);
else
return null;
}
public static void registerInst(Plugin plugin, Logger logger) {
pluginTable.put(plugin, logger);
return;
}
public static void freeInst(Plugin plugin) {
// get cached instance if one exists.
Logger logger = getInst(plugin);
// no luck, this means we have an incorrect free, do nothing.
if (logger == null)
return;
logger.freeResources();
pluginTable.remove(plugin);
return;
}
}

View file

@ -14,26 +14,30 @@
* {Name} (company) - description of contribution. * {Name} (company) - description of contribution.
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.logging; package org.eclipse.rse.internal.logging;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.rse.logging.IRemoteSystemsLogging;
import org.eclipse.rse.logging.RemoteSystemsLoggingPlugin;
/** /**
* This class initializes logging preferences. * This class initializes logging preferences.
*/ */
public class LoggingPreferenceInitializer extends AbstractPreferenceInitializer { public class LoggingPreferenceInitializer extends AbstractPreferenceInitializer {
/** /**
* Constructor. * Constructor.
*/ */
public LoggingPreferenceInitializer() { public LoggingPreferenceInitializer() {
super(); super();
} }
/** /**
* @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
*/ */
public void initializeDefaultPreferences() { public void initializeDefaultPreferences() {
RemoteSystemsLoggingPlugin.getDefault().initializeDefaultPreferences(); Preferences prefs = RemoteSystemsLoggingPlugin.getDefault().getPluginPreferences();
} prefs.setDefault(IRemoteSystemsLogging.DEBUG_LEVEL, IRemoteSystemsLogging.LOG_ERROR);
}
} }

View file

@ -1,59 +0,0 @@
/********************************************************************************
* Copyright (c) 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
********************************************************************************/
package org.eclipse.rse.logging;
import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext;
/**
* The main plugin class to be used in the desktop.
*/
public class Activator extends Plugin {
//The shared instance.
private static Activator plugin;
/**
* The constructor.
*/
public Activator() {
plugin = this;
}
/**
* This method is called upon plug-in activation
*/
public void start(BundleContext context) throws Exception {
super.start(context);
}
/**
* This method is called when the plug-in is stopped
*/
public void stop(BundleContext context) throws Exception {
super.stop(context);
plugin = null;
}
/**
* Returns the shared instance.
*/
public static Activator getDefault() {
return plugin;
}
}

View file

@ -21,59 +21,39 @@ package org.eclipse.rse.logging;
*/ */
public interface IRemoteSystemsLogging { public interface IRemoteSystemsLogging {
// All attributes here are static final.
/** /**
* Name of the key that controls the logging level.<br> * Name of the key that controls the logging level.<br>
*/ */
String PLUGIN_ID = "org.eclipse.rse.logging"; public static final String PLUGIN_ID = "org.eclipse.rse.logging";
/** /**
* Name of the key that controls the logging level.<br> * Name of the key that controls the logging level.<br>
* (value is "debug_level"). * (value is "debug_level").
*/ */
String DEBUG_LEVEL = "debug_level"; public static final String DEBUG_LEVEL = "debug_level";
/**
* Name of the key that controls the log location.<br>
* (value is "log_location").
*/
String LOG_LOCATION = "log_location";
/** /**
* Set debug_level to this value to get Error messages.<br> * Set debug_level to this value to get Error messages.<br>
* (value is 0). * (value is 0).
*/ */
int LOG_ERROR = 0; public static final int LOG_ERROR = 0;
/** /**
* Set debug_level to this value to get Warning messages.<br> * Set debug_level to this value to get Warning messages.<br>
* (value is 1). * (value is 1).
*/ */
int LOG_WARNING = 1; public static final int LOG_WARNING = 1;
/** /**
* Set debug_level to this value to get Information messages.<br> * Set debug_level to this value to get Information messages.<br>
* (value is 2). * (value is 2).
*/ */
int LOG_INFO = 2; public static final int LOG_INFO = 2;
/** /**
* Set debug_level to this value to get Debug messages.<br> * Set debug_level to this value to get Debug messages.<br>
* (value is 3). * (value is 3).
*/ */
int LOG_DEBUG = 3; public static final int LOG_DEBUG = 3;
/**
* Set log_location to this value to log to a file.<br>
* (value is "Log_To_File").
*/
String LOG_TO_FILE = "Log_To_File";
/**
* Set log_location to this value to log to a Std out.<br>
* (value is "Log_To_StdOut").
*/
String LOG_TO_STDOUT = "Log_To_StdOut";
} }

View file

@ -19,15 +19,11 @@ package org.eclipse.rse.logging;
import org.eclipse.core.runtime.ILog; import org.eclipse.core.runtime.ILog;
import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.Preferences;
import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; import org.eclipse.core.runtime.Preferences.IPropertyChangeListener;
import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; import org.eclipse.core.runtime.Preferences.PropertyChangeEvent;
import org.eclipse.rse.internal.logging.RemoteSystemLogListener;
import org.osgi.framework.Bundle;
/** /**
* Generic Logger class for handling Remote Systems logging and tracing.<br> * Generic Logger class for handling Remote Systems logging and tracing.<br>
@ -59,10 +55,9 @@ import org.osgi.framework.Bundle;
* out.logInfo("loading myPlugin class.");<br> * out.logInfo("loading myPlugin class.");<br>
* //out.logWarning("This is a warning message.");<br> * //out.logWarning("This is a warning message.");<br>
* //out.logError("This is an error.", new Exception());<br> * //out.logError("This is an error.", new Exception());<br>
* //if (Logger.DEBUG)<br> * //out.logDebugMessage(<br>
* // out.logDebugMessage(<br> * // "myPlugin",<br>
* // "myPlugin",<br> * // "this is a debug message from class myPlugin.");<br>
* // "this is a debug message from class myPlugin.");<br>
* ......<br> * ......<br>
* ......<br> * ......<br>
* }<br> * }<br>
@ -77,70 +72,42 @@ import org.osgi.framework.Bundle;
*/ */
public class Logger implements IPropertyChangeListener { public class Logger implements IPropertyChangeListener {
public static final String Copyright =
"(C) Copyright IBM Corp. 2002, 2003. All Rights Reserved.";
/**
* This SHOULD be set to false in production.<br>
* Used to compile out developement debug messages.<br>
*/
public final static boolean DEBUG = false;
// Cashed workbenchPlugin Log, LogListener instances
private ILog systemsPluginLog = null; private ILog systemsPluginLog = null;
private RemoteSystemLogListener logListener = null; private RemoteSystemLogListener logListener = null;
// Cashed Plugin ID, and plugin
private String pluginId = null; private String pluginId = null;
Plugin systemPlugin = null; private Plugin systemPlugin = null;
private int debug_level = IRemoteSystemsLogging.LOG_ERROR;
// Controls logging level /**
private int debug_level = 0; * Creates a new Logger. Invoked by the LoggerFactory.
* @param systemPlugin The preferences for this plugin will determine the detail
// Captures initialization errors * logged by this logger. This allows different levels of detail to be logged in the
private boolean init_ok = true; * workbench.
* @see LoggerFactory#getInst(Plugin);
protected Logger(Plugin systemPlugin) { */
Logger(Plugin systemPlugin) {
this.systemPlugin = systemPlugin; this.systemPlugin = systemPlugin;
this.pluginId = systemPlugin.getBundle().getSymbolicName(); this.pluginId = systemPlugin.getBundle().getSymbolicName();
initialize(); initialize();
} }
/**
* Initialize the Logger. The logger uses an ILog from the platform for this particular plugin, and
* establishes a listener on that log to format the items placed in the log.
*/
private void initialize() { private void initialize() {
try { systemsPluginLog = systemPlugin.getLog();
logListener = new RemoteSystemLogListener(systemPlugin);
systemsPluginLog = systemPlugin.getLog(); systemsPluginLog.addLogListener(logListener);
if (logListener == null) Preferences store = systemPlugin.getPluginPreferences();
logListener = new RemoteSystemLogListener(systemPlugin); debug_level = store.getInt(IRemoteSystemsLogging.DEBUG_LEVEL);
systemsPluginLog.addLogListener(logListener); store.addPropertyChangeListener(this);
store.addPropertyChangeListener(logListener);
// get the debug level from plugin Preference store.
// note: logListener must be initialized before calling getPreference store!
Preferences store = systemPlugin.getPluginPreferences();
debug_level = store.getInt(IRemoteSystemsLogging.DEBUG_LEVEL);
store.addPropertyChangeListener(this);
store.addPropertyChangeListener(logListener);
} catch (Exception e) {
// Errors occured during initialize, disable logging.
// should never be here. Use Platform logger instead.
Bundle bundle = Platform.getBundle(Platform.PI_RUNTIME);
Platform.getLog(bundle).log(
new Status(
IStatus.ERROR,
IRemoteSystemsLogging.PLUGIN_ID,
IStatus.OK,
"could not create Logger for " + pluginId,
e));
init_ok = false;
}
} }
/** /**
* Log a Debug message. This is intended to be wrapped as follows:<br> * Log a Debug message. This is intended to be used as follows:<br>
* if (Logger.DEBUG)<br> * Logger.logDebugMessage("someClassName", "someMessage");<br>
* Logger.logDebugMessage("someClassName", "someMessage");<br>
* <br> * <br>
* and the output will be:<br> * and the output will be:<br>
* <br> * <br>
@ -153,16 +120,10 @@ public class Logger implements IPropertyChangeListener {
* Note that since this message is only for developer debugging, it does not * Note that since this message is only for developer debugging, it does not
* need to be localized to proper local.<br> * need to be localized to proper local.<br>
*/ */
public synchronized void logDebugMessage(String className, String message) {
public synchronized void logDebugMessage( if (debug_level >= IRemoteSystemsLogging.LOG_DEBUG) {
String className, MultiStatus debugStatus = new MultiStatus(pluginId, IStatus.OK, className, null);
String message) { Status infoStatus = new Status(IStatus.OK, pluginId, IStatus.OK, message, null);
if ((init_ok) && (debug_level >= IRemoteSystemsLogging.LOG_DEBUG)) {
// ie: print all INFO, WARNING and ERROR messages
MultiStatus debugStatus =
new MultiStatus(pluginId, IStatus.OK, className, null);
Status infoStatus =
new Status(IStatus.OK, pluginId, IStatus.OK, message, null);
debugStatus.add(infoStatus); debugStatus.add(infoStatus);
systemsPluginLog.log(debugStatus); systemsPluginLog.log(debugStatus);
} }
@ -173,16 +134,11 @@ public class Logger implements IPropertyChangeListener {
* be localized to proper local.<br> * be localized to proper local.<br>
* ie: Resource.getString() should already have been called * ie: Resource.getString() should already have been called
*/ */
public synchronized void logError(String message, Throwable ex) { public synchronized void logError(String message, Throwable ex) {
if ((init_ok) && (debug_level >= IRemoteSystemsLogging.LOG_ERROR)) { if (debug_level >= IRemoteSystemsLogging.LOG_ERROR) {
// ie: print only ERROR messages if (message == null) message = "";
if (message == null) Status errorStatus = new Status(IStatus.ERROR, pluginId, IStatus.OK, message, ex);
message = "";
Status errorStatus =
new Status(IStatus.ERROR, pluginId, IStatus.OK, message, ex);
systemsPluginLog.log(errorStatus); systemsPluginLog.log(errorStatus);
} }
} }
@ -191,28 +147,21 @@ public class Logger implements IPropertyChangeListener {
* be localized to proper local.<br> * be localized to proper local.<br>
* ie: Resource.getString() should already have been called * ie: Resource.getString() should already have been called
*/ */
public synchronized void logInfo(String message) public synchronized void logInfo(String message) {
{
logInfo(message, null); logInfo(message, null);
} }
/** /**
* Log an Information message. Note that the message should already * Log an Information message. Note that the message should already
* be localized to proper local.<br> * be localized to proper local.<br>
* ie: Resource.getString() should already have been called * ie: Resource.getString() should already have been called
*/ */
public synchronized void logInfo(String message, Throwable ex) { public synchronized void logInfo(String message, Throwable ex) {
if ((init_ok) && (debug_level >= IRemoteSystemsLogging.LOG_INFO)) { if (debug_level >= IRemoteSystemsLogging.LOG_INFO) {
if (message == null) if (message == null) message = "";
message = ""; Status infoStatus = new Status(IStatus.INFO, pluginId, IStatus.OK, message, ex);
// ie: print all INFO, WARNING and ERROR messages
Status infoStatus =
new Status(IStatus.INFO, pluginId, IStatus.OK, message, ex);
systemsPluginLog.log(infoStatus); systemsPluginLog.log(infoStatus);
} }
} }
/** /**
@ -220,8 +169,7 @@ public class Logger implements IPropertyChangeListener {
* be localized to proper local.<br> * be localized to proper local.<br>
* ie: Resource.getString() should already have been called * ie: Resource.getString() should already have been called
*/ */
public synchronized void logWarning(String message) public synchronized void logWarning(String message) {
{
logWarning(message, null); logWarning(message, null);
} }
@ -231,26 +179,17 @@ public class Logger implements IPropertyChangeListener {
* ie: Resource.getString() should already have been called * ie: Resource.getString() should already have been called
*/ */
public synchronized void logWarning(String message, Throwable ex) { public synchronized void logWarning(String message, Throwable ex) {
if ((init_ok) && (debug_level >= IRemoteSystemsLogging.LOG_WARNING)) { if (debug_level >= IRemoteSystemsLogging.LOG_WARNING) {
if (message == null) if (message == null) message = "";
message = ""; Status warningStatus = new Status(IStatus.WARNING, pluginId, IStatus.OK, message, ex);
// ie: print all WARNING and ERROR messages
Status warningStatus =
new Status(
IStatus.WARNING,
pluginId,
IStatus.OK,
message,
ex);
systemsPluginLog.log(warningStatus); systemsPluginLog.log(warningStatus);
} }
} }
public synchronized void setDebugLevel(int level) { public synchronized void setDebugLevel(int level) {
debug_level = level; debug_level = level;
} }
public synchronized int getDebugLevel() { public synchronized int getDebugLevel() {
return debug_level; return debug_level;
} }
@ -260,10 +199,9 @@ public class Logger implements IPropertyChangeListener {
} }
/** /**
* Handle changes from Preferences page. * Handle changes from a Preferences page.
*/ */
public synchronized void propertyChange(PropertyChangeEvent event) { public synchronized void propertyChange(PropertyChangeEvent event) {
// refresh the debug level from plugin Preference store
Preferences prefs = systemPlugin.getPluginPreferences(); Preferences prefs = systemPlugin.getPluginPreferences();
debug_level = prefs.getInt(IRemoteSystemsLogging.DEBUG_LEVEL); debug_level = prefs.getInt(IRemoteSystemsLogging.DEBUG_LEVEL);
} }

View file

@ -16,8 +16,8 @@
package org.eclipse.rse.logging; package org.eclipse.rse.logging;
import java.util.Hashtable;
import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Plugin;
import org.eclipse.rse.internal.logging.LoggerController;
/** /**
* Factory class for creating Logger instances.<br> * Factory class for creating Logger instances.<br>
@ -27,39 +27,31 @@ import org.eclipse.rse.internal.logging.LoggerController;
*/ */
public class LoggerFactory { public class LoggerFactory {
private static Hashtable pluginTable = new Hashtable();
/** /**
* Returns a Logger instance for the given plugin.<br> Note that there is only * Returns the Logger instance for a given plugin. There is only
* a singelton instance of the Logger class per plugin. You are guarenteed the * one instance of the Logger class per plugin.
* same instance if one has previously been created.
*/ */
public static Logger getInst(Plugin plugin) { public static Logger getLogger(Plugin plugin) {
Logger logger = (Logger) pluginTable.get(plugin);
// get cached instance from controller if one exists. if (logger == null) {
Logger inst = LoggerController.getInst(plugin); logger = new Logger(plugin);
// no luck, create it and register it with the controller, and create pluginTable.put(plugin, logger);
// preference page.
if (inst == null) {
inst = new Logger(plugin);
LoggerController.registerInst(plugin, inst);
// Check to see if the Logging plugin out instance has been created yet.
// If it has, use it to log
if (RemoteSystemsLoggingPlugin.out != null)
RemoteSystemsLoggingPlugin.out.logInfo(
"Created Logger instance for "
+ plugin.getBundle().getSymbolicName());
} }
return logger;
return inst;
} }
/** /**
* Frees resources used by the Logger instance for the given plugin.<br> * Frees resources used by the Logger instance for the given plugin.<br>
* This methods must be called as part of the the plugin shutdown life cycle. * This methods must be called as part of the the plugin shutdown life cycle.
*/ */
public static void freeInst(Plugin plugin) { public static void freeLogger(Plugin plugin) {
// delegate to controller Logger logger = (Logger) pluginTable.get(plugin);
LoggerController.freeInst(plugin); if (logger != null) {
logger.freeResources();
pluginTable.remove(plugin);
}
} }
} }

View file

@ -14,7 +14,7 @@
* {Name} (company) - description of contribution. * {Name} (company) - description of contribution.
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.internal.logging; package org.eclipse.rse.logging;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
@ -26,27 +26,22 @@ import org.eclipse.core.runtime.ILogListener;
import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; import org.eclipse.core.runtime.Preferences.IPropertyChangeListener;
import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; import org.eclipse.core.runtime.Preferences.PropertyChangeEvent;
import org.eclipse.rse.logging.IRemoteSystemsLogging;
/** /**
* Log Listener is a sink for messages coming from Logger. * Log Listener is a sink for messages coming from Logger.
*/ */
public class RemoteSystemLogListener implements ILogListener, IPropertyChangeListener { class RemoteSystemLogListener implements ILogListener, IPropertyChangeListener {
private PrintWriter log = null; private PrintWriter log = null;
private File outputFile = null; private File outputFile = null;
private boolean log_to_stdout = false;
private Plugin plugin = null;
/** /**
* Create a new log listener for a plugin. * Create a new log listener for a plugin.
* @param plugin The plugin for which to create a log listener. * @param plugin The plugin for which to create a log listener.
*/ */
public RemoteSystemLogListener(Plugin plugin) { public RemoteSystemLogListener(Plugin plugin) {
this.plugin = plugin;
IPath path = plugin.getStateLocation().addTrailingSeparator().append(".log"); IPath path = plugin.getStateLocation().addTrailingSeparator().append(".log");
outputFile = path.toFile(); outputFile = path.toFile();
if ((outputFile != null) && (outputFile.exists())) { if ((outputFile != null) && (outputFile.exists())) {
@ -61,13 +56,8 @@ public class RemoteSystemLogListener implements ILogListener, IPropertyChangeLis
*/ */
private void initialize() { private void initialize() {
try { try {
Preferences store = plugin.getPluginPreferences(); freeResources();
String log_location = store.getString(IRemoteSystemsLogging.LOG_LOCATION); log = new PrintWriter(new BufferedWriter(new FileWriter(outputFile.toString(), true)), true);
if ((log_location != null) && (log_location.equalsIgnoreCase(IRemoteSystemsLogging.LOG_TO_STDOUT))) {
doLogToView();
} else {
doLogToFile();
}
} catch (Exception e) { } catch (Exception e) {
log = null; log = null;
System.err.println("Exception in RemoteSystemLogListener.initialize(): " + e.getMessage()); System.err.println("Exception in RemoteSystemLogListener.initialize(): " + e.getMessage());
@ -75,35 +65,11 @@ public class RemoteSystemLogListener implements ILogListener, IPropertyChangeLis
} }
} }
/**
* Logs to standard output.
*/
private void doLogToView() {
// make sure we free resources first
freeResources();
// log
log = new PrintWriter(System.out, true);
// cach last state
log_to_stdout = true;
}
private void doLogToFile() throws Exception {
// make sure we free resources first
freeResources();
// log
log =
new PrintWriter(
new BufferedWriter(new FileWriter(outputFile.toString(), true)),
true);
// cache last state
log_to_stdout = false;
}
public void logging(IStatus status) { public void logging(IStatus status) {
if (log == null) if (log == null)
return; return;
else { else {
// Need a to string here, because we need to be able to compate dates. // Need a to string here, because we need to be able to compare dates.
String date = new Date().toString(); String date = new Date().toString();
log.println(date); log.println(date);
int severity = status.getSeverity(); int severity = status.getSeverity();
@ -119,17 +85,14 @@ public class RemoteSystemLogListener implements ILogListener, IPropertyChangeLis
log.print(" "); log.print(" ");
log.print(status.getPlugin()); log.print(status.getPlugin());
// removed for now because we do not use Error codes.
//log.print(" ");
//log.print(status.getCode());
log.print(" "); log.print(" ");
log.println(status.getMessage()); log.println(status.getMessage());
if (status.getException() != null) if (status.getException() != null) status.getException().printStackTrace(log);
status.getException().printStackTrace(log);
if (status.isMultiStatus()) { if (status.isMultiStatus()) {
IStatus[] children = status.getChildren(); IStatus[] children = status.getChildren();
for (int i = 0; i < children.length; i++) for (int i = 0; i < children.length; i++) {
loggingChild(children[i]); loggingChild(children[i]);
}
} }
log.println("--------------------------------------------"); log.println("--------------------------------------------");
} }
@ -149,8 +112,7 @@ public class RemoteSystemLogListener implements ILogListener, IPropertyChangeLis
else { else {
log.print("\t\t"); log.print("\t\t");
log.println(status.getMessage()); log.println(status.getMessage());
if (status.getException() != null) if (status.getException() != null) status.getException().printStackTrace(log);
status.getException().printStackTrace(log);
if (status.isMultiStatus()) { if (status.isMultiStatus()) {
IStatus[] children = status.getChildren(); IStatus[] children = status.getChildren();
for (int i = 0; i < children.length; i++) for (int i = 0; i < children.length; i++)
@ -168,14 +130,7 @@ public class RemoteSystemLogListener implements ILogListener, IPropertyChangeLis
} }
public void freeResources() { public void freeResources() {
if (log == null) if (log == null) return;
return;
// make sure to not close std_out. A closed stream can *not*
// br re-opened!
if (log_to_stdout)
return;
log.flush(); log.flush();
log.close(); log.close();
log = null; log = null;

View file

@ -24,23 +24,15 @@ import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Preferences;
import org.osgi.framework.BundleContext; import org.osgi.framework.BundleContext;
/** /**
* Remote Systems Logging plugin. * Remote Systems Logging plugin.
*/ */
public class RemoteSystemsLoggingPlugin extends Plugin { public class RemoteSystemsLoggingPlugin extends Plugin {
private static RemoteSystemsLoggingPlugin singleton;
//The shared instance.
private static RemoteSystemsLoggingPlugin inst;
//Resource bundle.
private ResourceBundle resourceBundle; private ResourceBundle resourceBundle;
// The cached Logger inst.
public static Logger out = null; public static Logger out = null;
/** /**
@ -48,17 +40,14 @@ public class RemoteSystemsLoggingPlugin extends Plugin {
*/ */
public RemoteSystemsLoggingPlugin() { public RemoteSystemsLoggingPlugin() {
super(); super();
singleton = this;
if (inst == null) {
inst = this;
}
} }
/** /**
* Returns the shared plugin instance. * Returns the shared plugin instance.
*/ */
public static RemoteSystemsLoggingPlugin getDefault() { public static RemoteSystemsLoggingPlugin getDefault() {
return inst; return singleton;
} }
/** /**
@ -79,47 +68,33 @@ public class RemoteSystemsLoggingPlugin extends Plugin {
* Returns the plugin's resource bundle. * Returns the plugin's resource bundle.
*/ */
public ResourceBundle getResourceBundle() { public ResourceBundle getResourceBundle() {
if (resourceBundle == null) {
if (resourceBundle == null) { try {
IPath path = new Path("$nl$/RemoteSystemsLogging.properties");
try { URL url = FileLocator.find(getBundle(), path, null);
IPath path = new Path("$nl$/RemoteSystemsLogging.properties"); resourceBundle = new PropertyResourceBundle(url.openStream());
URL url = FileLocator.find(getBundle(), path, null); } catch (Exception x) {
resourceBundle = new PropertyResourceBundle(url.openStream()); resourceBundle = null;
} catch (Exception x) { out.logInfo("RemoteSystemsLoggingPlugin - unable to log resourcebundle");
resourceBundle = null; }
out.logInfo("RemoteSystemsLoggingPlugin - unable to log resourcebundle"); }
}
}
return resourceBundle; return resourceBundle;
} }
/** /* (non-Javadoc)
* Sets default preference values. * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
*/ */
public void initializeDefaultPreferences() { public void start(BundleContext context) throws Exception {
Preferences prefs = getPluginPreferences(); super.start(context);
prefs.setDefault(IRemoteSystemsLogging.DEBUG_LEVEL, IRemoteSystemsLogging.LOG_ERROR); out = LoggerFactory.getLogger(this);
prefs.setDefault(IRemoteSystemsLogging.LOG_LOCATION, IRemoteSystemsLogging.LOG_TO_FILE); out.logInfo("loading RemoteSystemsLoggingPlugin class.");
} }
/** /* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
*/ */
public void start(BundleContext context) throws Exception { public void stop(BundleContext context) throws Exception {
super.start(context); LoggerFactory.freeLogger(this);
super.stop(context);
// don't need a preference page for this plugin. }
out = LoggerFactory.getInst(this);
out.logInfo("loading RemoteSystemsLoggingPlugin class.");
}
/**
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
LoggerFactory.freeInst(this);
super.stop(context);
}
} }

View file

@ -14,7 +14,7 @@
* {Name} (company) - description of contribution. * {Name} (company) - description of contribution.
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.internal.logging; package org.eclipse.rse.logging.ui;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;

View file

@ -0,0 +1,30 @@
/********************************************************************************
* Copyright (c) 2006 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* David Dykstal (IBM) - 148434 Better F1 help.
********************************************************************************/
package org.eclipse.rse.logging.ui;
import org.eclipse.osgi.util.NLS;
public class LoggingPreferenceLabels extends NLS {
private static String BUNDLE_NAME = "org.eclipse.rse.logging.ui.LoggingPreferenceLabels";//$NON-NLS-1$
public static String LOGGING_PREFERENCE_PAGE_TOPLABEL1;
public static String LOGGING_PREFERENCE_PAGE_TOPLABEL2;
public static String LOGGING_PREFERENCE_PAGE_ERRORS_ONLY;
public static String LOGGING_PREFERENCE_PAGE_WARNINGS_ERRORS;
public static String LOGGING_PREFERENCE_PAGE_INFO_DEBUG;
public static String LOGGING_PREFERENCE_PAGE_FULL_DEBUG;
static {
// load message values from bundle file
NLS.initializeMessages(BUNDLE_NAME, LoggingPreferenceLabels.class);
}
}

View file

@ -21,12 +21,9 @@
# Preference Page # Preference Page
# ---------------- # ----------------
LoggingPreferencePage.topLabel1 = Specify the logging options for {0} LOGGING_PREFERENCE_PAGE_TOPLABEL1 = Specify the logging options for {0}
LoggingPreferencePage.topLabel2 = Logging Level: LOGGING_PREFERENCE_PAGE_TOPLABEL2 = Logging Level:
LoggingPreferencePage.errors_only = Errors only LOGGING_PREFERENCE_PAGE_ERRORS_ONLY = Errors only
LoggingPreferencePage.warnings_errors = Warnings and errors LOGGING_PREFERENCE_PAGE_WARNINGS_ERRORS = Warnings and errors
LoggingPreferencePage.info_debug = Warnings, errors and information messages LOGGING_PREFERENCE_PAGE_INFO_DEBUG = Warnings, errors and information messages
LoggingPreferencePage.full_debug = Full debug LOGGING_PREFERENCE_PAGE_FULL_DEBUG = Full debug
LoggingPreferencePage.logging_location = Logging Location:
LoggingPreferencePage.log_to_file = Log to file (default)
LoggingPreferencePage.log_to_stdout = Log to Standard Out

View file

@ -11,23 +11,20 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
* *
* Contributors: * Contributors:
* Michael Berger (IBM Canada) - 148434 Better F1 help.
* {Name} (company) - description of contribution. * {Name} (company) - description of contribution.
********************************************************************************/ ********************************************************************************/
package org.eclipse.rse.logging; package org.eclipse.rse.logging.ui;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Set; import java.util.Set;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExecutableExtension;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.preference.PreferenceStore; import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.rse.internal.logging.LabelUtil; import org.eclipse.rse.logging.IRemoteSystemsLogging;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.GridLayout;
@ -37,32 +34,21 @@ import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.help.WorkbenchHelp; import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin; import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.Bundle; import org.osgi.framework.Bundle;
/** /**
* An abstract preference page for all remote system logging.<br/> * An abstract preference page for all remote system logging.<br/>
* Use a subclass of this page if you need a preference page to control * Use a subclass of this page if you need a preference page to control
* logging. * logging.
*/ */
public abstract class LoggingPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, IExecutableExtension { public abstract class LoggingPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
private Button radioButton0; private Button radioButton0;
private Button radioButton1; private Button radioButton1;
private Button radioButton2; private Button radioButton2;
private Button radioButton3; private Button radioButton3;
private Button radioButtonLogFile;
private Button radioButtonLogView;
/**
* This is the plugin instance who's preference store will be used
* to control the settings on this page. Also, when this page is closed
* the settings are restored in the preference store of the above plugin.
*/
private Bundle bundle = null;
/** /**
* Creates composite control and sets the default layout data. * Creates composite control and sets the default layout data.
@ -90,37 +76,28 @@ public abstract class LoggingPreferencePage extends PreferencePage implements IW
* Method declared on PreferencePage * Method declared on PreferencePage
*/ */
protected Control createContents(Composite parent) { protected Control createContents(Composite parent) {
Bundle bundle = getBundle();
Composite composite_tab = createComposite(parent, 2); Composite composite_tab = createComposite(parent, 2);
String bundleName = (String)(bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_NAME)); String bundleName = (String) (bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_NAME));
String topLabel1 = RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.topLabel1"); String topLabel1 = LoggingPreferenceLabels.LOGGING_PREFERENCE_PAGE_TOPLABEL1;
topLabel1 = MessageFormat.format(topLabel1, new Object[] {bundleName}); topLabel1 = MessageFormat.format(topLabel1, new Object[] { bundleName });
createLabel(composite_tab, topLabel1); createLabel(composite_tab, topLabel1);
forceSpace(composite_tab); forceSpace(composite_tab);
String topLabel2 = RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.topLabel2"); String topLabel2 = LoggingPreferenceLabels.LOGGING_PREFERENCE_PAGE_TOPLABEL2;
createLabel(composite_tab, topLabel2); createLabel(composite_tab, topLabel2);
tabForward(composite_tab); tabForward(composite_tab);
Composite composite1_radioButton = createComposite(composite_tab, 1); Composite composite1_radioButton = createComposite(composite_tab, 1);
String text = RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.errors_only"); String text = LoggingPreferenceLabels.LOGGING_PREFERENCE_PAGE_ERRORS_ONLY;
Set used = LabelUtil.usedFromString("ad"); // the mnemonics already used on preference page (in English) Set used = LabelUtil.usedFromString("ad"); // the mnemonics already used on preference page (in English)
radioButton0 = createRadioButton(composite1_radioButton, LabelUtil.assignMnemonic(text, used)); radioButton0 = createRadioButton(composite1_radioButton, LabelUtil.assignMnemonic(text, used));
text = RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.warnings_errors"); text = LoggingPreferenceLabels.LOGGING_PREFERENCE_PAGE_WARNINGS_ERRORS;
radioButton1 = createRadioButton(composite1_radioButton, LabelUtil.assignMnemonic(text, used)); radioButton1 = createRadioButton(composite1_radioButton, LabelUtil.assignMnemonic(text, used));
text = RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.info_debug"); text = LoggingPreferenceLabels.LOGGING_PREFERENCE_PAGE_INFO_DEBUG;
radioButton2 = createRadioButton(composite1_radioButton, LabelUtil.assignMnemonic(text, used)); radioButton2 = createRadioButton(composite1_radioButton, LabelUtil.assignMnemonic(text, used));
// now add debug stuff, that only shows up in a debug build. text = LoggingPreferenceLabels.LOGGING_PREFERENCE_PAGE_FULL_DEBUG;
if (Logger.DEBUG) { radioButton3 = createRadioButton(composite1_radioButton, LabelUtil.assignMnemonic(text, used));
radioButton3 = createRadioButton(composite1_radioButton, RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.full_debug"));
Composite composite_tab2 = createComposite(parent, 2);
Label label3 = createLabel(composite_tab2, RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.logging_location"));
tabForward(composite_tab2);
Composite composite_radioButton2 = createComposite(composite_tab2, 1);
radioButtonLogFile = createRadioButton(composite_radioButton2, RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.log_to_file"));
radioButtonLogView = createRadioButton(composite_radioButton2, RemoteSystemsLoggingPlugin.getResourceString("LoggingPreferencePage.log_to_stdout"));
WorkbenchHelp.setHelp(composite_tab2, "com.ibm.etools.systems.logging.pref0000");
}
initializeValues(); initializeValues();
RemoteSystemsLoggingPlugin.out.logInfo("created LoggingPreferencePage"); PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, "com.ibm.etools.systems.logging.rsel0000");
WorkbenchHelp.setHelp(composite_tab, "com.ibm.etools.systems.logging.pref0000");
return new Composite(parent, SWT.NULL); return new Composite(parent, SWT.NULL);
} }
@ -162,24 +139,27 @@ public abstract class LoggingPreferencePage extends PreferencePage implements IW
* *
*/ */
protected IPreferenceStore doGetPreferenceStore() { protected IPreferenceStore doGetPreferenceStore() {
Bundle bundle = getBundle();
if (bundle != null) { if (bundle != null) {
AbstractUIPlugin plugin = getPlugin(); AbstractUIPlugin plugin = getPlugin();
if (plugin != null) { if (plugin != null) {
return plugin.getPreferenceStore(); return plugin.getPreferenceStore();
} } else {
else {
return new PreferenceStore(); return new PreferenceStore();
} }
} } else {
else {
return new PreferenceStore(); return new PreferenceStore();
} }
} }
protected abstract AbstractUIPlugin getPlugin(); protected abstract AbstractUIPlugin getPlugin();
private Bundle getBundle() {
Plugin plugin = getPlugin();
Bundle bundle = plugin.getBundle();
return bundle;
}
/** /**
* Method declared on IWorkbenchPreferencePage * Method declared on IWorkbenchPreferencePage
*/ */
@ -195,36 +175,24 @@ public abstract class LoggingPreferencePage extends PreferencePage implements IW
radioButton0.setSelection(false); radioButton0.setSelection(false);
radioButton1.setSelection(false); radioButton1.setSelection(false);
radioButton2.setSelection(false); radioButton2.setSelection(false);
if (null != radioButton3) if (null != radioButton3) radioButton3.setSelection(false);
radioButton3.setSelection(false);
if (Logger.DEBUG) {
radioButtonLogFile.setSelection(false);
radioButtonLogView.setSelection(false);
}
int choice = store.getInt(IRemoteSystemsLogging.DEBUG_LEVEL); int choice = store.getInt(IRemoteSystemsLogging.DEBUG_LEVEL);
switch (choice) { switch (choice) {
case 0 : case 0:
radioButton0.setSelection(true); radioButton0.setSelection(true);
break; break;
case 1 : case 1:
radioButton1.setSelection(true); radioButton1.setSelection(true);
break; break;
case 2 : case 2:
radioButton2.setSelection(true); radioButton2.setSelection(true);
break; break;
case 3 : case 3:
if (null != radioButton3) if (null != radioButton3)
radioButton3.setSelection(true); radioButton3.setSelection(true);
else
radioButton2.setSelection(true);
break;
}
if (Logger.DEBUG) {
String log_location = store.getString(IRemoteSystemsLogging.LOG_LOCATION);
if (log_location.equalsIgnoreCase(IRemoteSystemsLogging.LOG_TO_STDOUT))
radioButtonLogView.setSelection(true);
else else
radioButtonLogFile.setSelection(true); radioButton2.setSelection(true);
break;
} }
} }
@ -237,36 +205,24 @@ public abstract class LoggingPreferencePage extends PreferencePage implements IW
radioButton0.setSelection(false); radioButton0.setSelection(false);
radioButton1.setSelection(false); radioButton1.setSelection(false);
radioButton2.setSelection(false); radioButton2.setSelection(false);
if (null != radioButton3) if (null != radioButton3) radioButton3.setSelection(false);
radioButton3.setSelection(false);
if (Logger.DEBUG) {
radioButtonLogFile.setSelection(false);
radioButtonLogView.setSelection(false);
}
int choice = store.getDefaultInt(IRemoteSystemsLogging.DEBUG_LEVEL); int choice = store.getDefaultInt(IRemoteSystemsLogging.DEBUG_LEVEL);
switch (choice) { switch (choice) {
case 0 : case 0:
radioButton0.setSelection(true); radioButton0.setSelection(true);
break; break;
case 1 : case 1:
radioButton1.setSelection(true); radioButton1.setSelection(true);
break; break;
case 2 : case 2:
radioButton2.setSelection(true); radioButton2.setSelection(true);
break; break;
case 3 : case 3:
if (null != radioButton3) if (null != radioButton3)
radioButton3.setSelection(true); radioButton3.setSelection(true);
else
radioButton2.setSelection(true);
break;
}
if (Logger.DEBUG) {
String log_location = store.getDefaultString(IRemoteSystemsLogging.LOG_LOCATION);
if (log_location.equalsIgnoreCase(IRemoteSystemsLogging.LOG_TO_STDOUT))
radioButtonLogView.setSelection(true);
else else
radioButtonLogFile.setSelection(true); radioButton2.setSelection(true);
break;
} }
} }
@ -296,17 +252,8 @@ public abstract class LoggingPreferencePage extends PreferencePage implements IW
choice = 1; choice = 1;
else if (radioButton2.getSelection()) else if (radioButton2.getSelection())
choice = 2; choice = 2;
else if (null != radioButton3 && radioButton3.getSelection()) else if (null != radioButton3 && radioButton3.getSelection()) choice = 3;
choice = 3;
store.setValue(IRemoteSystemsLogging.DEBUG_LEVEL, choice); store.setValue(IRemoteSystemsLogging.DEBUG_LEVEL, choice);
if (Logger.DEBUG) {
String log_location = "";
if (radioButtonLogFile.getSelection())
log_location = IRemoteSystemsLogging.LOG_TO_FILE;
else
log_location = IRemoteSystemsLogging.LOG_TO_STDOUT;
store.setValue(IRemoteSystemsLogging.LOG_LOCATION, log_location);
}
} }
/** /**
@ -336,17 +283,4 @@ public abstract class LoggingPreferencePage extends PreferencePage implements IW
data.horizontalSpan = 2; data.horizontalSpan = 2;
label.setLayoutData(data); label.setLayoutData(data);
} }
/**
* This is needed to get to the plugin id, and then plugin instance.
*/
public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
try {
String pluginName = config.getDeclaringExtension().getContributor().getName();
this.bundle = Platform.getBundle(pluginName);
} catch (Exception e) {
RemoteSystemsLoggingPlugin.out.logError("Failed to create LoggingPreferencePage.", e);
}
}
} }

View file

@ -16,7 +16,7 @@
package org.eclipse.rse.ui.propertypages; package org.eclipse.rse.ui.propertypages;
import org.eclipse.rse.logging.LoggingPreferencePage; import org.eclipse.rse.logging.ui.LoggingPreferencePage;
import org.eclipse.rse.ui.RSEUIPlugin; import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.ui.plugin.AbstractUIPlugin; import org.eclipse.ui.plugin.AbstractUIPlugin;

View file

@ -1810,7 +1810,7 @@ public class SystemFilterPoolManager implements ISystemFilterPoolManager
*/ */
public void logDebugMessage(String prefix, String message) public void logDebugMessage(String prefix, String message)
{ {
if ((Logger.DEBUG) && (logger!=null)) if ((logger!=null))
{ {
logger.logDebugMessage(prefix, message); logger.logDebugMessage(prefix, message);
} }

View file

@ -448,15 +448,13 @@ public abstract class AbstractConnectorService extends RSEModelObject implements
if (passwordInformation == null && oldUserId != null && !forcePrompt) { if (passwordInformation == null && oldUserId != null && !forcePrompt) {
SystemSignonInformation savedPasswordInformation = ppm.find(hostType, hostName, oldUserId); SystemSignonInformation savedPasswordInformation = ppm.find(hostType, hostName, oldUserId);
if (savedPasswordInformation != null) { if (savedPasswordInformation != null) {
if (validator != null) { if (validator == null || validator.isValid(shell, savedPasswordInformation)) {
if (!validator.isValid(shell, savedPasswordInformation)) { setPasswordInformation(savedPasswordInformation);
passwordValid = false; passwordInformation = getPasswordInformation();
clearPasswordCache(); } else {
passwordInformation = null; passwordValid = false;
} else { clearPasswordCache();
setPasswordInformation(savedPasswordInformation); passwordInformation = null;
passwordInformation = getPasswordInformation();
}
} }
} }
} }
@ -1087,7 +1085,7 @@ public abstract class AbstractConnectorService extends RSEModelObject implements
} }
private void logException(Throwable t) { private void logException(Throwable t) {
Logger log = LoggerFactory.getInst(RSEUIPlugin.getDefault()); Logger log = LoggerFactory.getLogger(RSEUIPlugin.getDefault());
log.logError("Unexpected exception", t); log.logError("Unexpected exception", t);
} }

View file

@ -655,10 +655,7 @@ public abstract class SystemBasePlugin extends AbstractUIPlugin
*/ */
public static void logDebugMessage(String prefix, String message) public static void logDebugMessage(String prefix, String message)
{ {
if (Logger.DEBUG) log.logDebugMessage(prefix, message);
{
log.logDebugMessage(prefix, message);
}
} }
/** /**
@ -716,7 +713,7 @@ public abstract class SystemBasePlugin extends AbstractUIPlugin
// logger // logger
if (log == null) { if (log == null) {
log = LoggerFactory.getInst(this); log = LoggerFactory.getLogger(this);
log.logInfo("Loading " + this.getClass()); log.logInfo("Loading " + this.getClass());
} }
} }
@ -726,7 +723,7 @@ public abstract class SystemBasePlugin extends AbstractUIPlugin
*/ */
public void stop(BundleContext context) throws Exception { public void stop(BundleContext context) throws Exception {
logDebugMessage(this.getClass().getName(), "SHUTDOWN"); logDebugMessage(this.getClass().getName(), "SHUTDOWN");
LoggerFactory.freeInst(this); LoggerFactory.freeLogger(this);
super.stop(context); super.stop(context);
} }