[81016] perf: test logging level before logging calculated strings.
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java
index 3579158..accd740 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/BeaninfoClassAdapter.java
@@ -11,13 +11,14 @@
 package org.eclipse.jem.internal.beaninfo.adapters;
 /*
  *  $RCSfile: BeaninfoClassAdapter.java,v $
- *  $Revision: 1.22 $  $Date: 2004/12/06 20:38:28 $ 
+ *  $Revision: 1.23 $  $Date: 2004/12/16 18:35:36 $ 
  */
 
 import java.io.FileNotFoundException;
 import java.lang.ref.WeakReference;
 import java.text.MessageFormat;
 import java.util.*;
+import java.util.logging.Level;
 
 import org.eclipse.core.resources.IResourceStatus;
 import org.eclipse.core.runtime.*;
@@ -41,6 +42,8 @@
 
 import com.ibm.etools.emf.event.EventFactory;
 import com.ibm.etools.emf.event.EventUtil;
+import com.ibm.wtp.common.logger.proxy.Logger;
+
 import org.eclipse.jem.java.*;
 import org.eclipse.jem.internal.java.beaninfo.IIntrospectionAdapter;
 import org.eclipse.jem.java.impl.JavaClassImpl;
@@ -733,7 +736,9 @@
 							// Set it to EObject type. If it becomes valid later (through the class being changed), then the introspect/reflect
 							// will set it to the correct type.
 							a.setEType(EcorePackage.eINSTANCE.getEObject());
-							BeaninfoPlugin.getPlugin().getLogger().logWarning("Feature \""+getJavaClass().getQualifiedName()+"->"+a.getName()+"\" did not have a type set. Typically due to override file creating feature but property not found on introspection/reflection.");
+							Logger logger = BeaninfoPlugin.getPlugin().getLogger();
+							if (logger.isLoggingLevel(Level.WARNING))
+								logger.logWarning("Feature \""+getJavaClass().getQualifiedName()+"->"+a.getName()+"\" did not have a type set. Typically due to override file creating feature but property not found on introspection/reflection.");
 						}
 					}
 				}
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java
index 8047757..884ac46 100644
--- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java
+++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/adapters/CreateRegistryJobHandler.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: CreateRegistryJobHandler.java,v $
- *  $Revision: 1.8 $  $Date: 2004/06/16 20:58:31 $ 
+ *  $Revision: 1.9 $  $Date: 2004/12/16 18:35:36 $ 
  */
 package org.eclipse.jem.internal.beaninfo.adapters;
 
@@ -21,6 +21,8 @@
 import org.eclipse.core.runtime.jobs.*;
 
 import org.eclipse.jem.internal.beaninfo.core.BeaninfoPlugin;
+
+import com.ibm.wtp.common.logger.proxy.Logger;
  
 
 /**
@@ -68,8 +70,11 @@
 				} catch (InterruptedException e) {
 				}
 			}
-			if (tries==0)
-				BeaninfoPlugin.getPlugin().getLogger().log("Build job waiting when trying to start beaninfo registry. Possible race.", Level.WARNING);	// $NON-NLS-1$
+			if (tries==0) {
+				Logger logger = BeaninfoPlugin.getPlugin().getLogger();
+				if (logger.isLoggingLevel(Level.WARNING))
+					logger.log("Build job waiting when trying to start beaninfo registry. Possible race.", Level.WARNING);	// $NON-NLS-1$
+			}
 		}
 		
 		jobHandler.processCreateRegistry(nature);
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
index 1a692ed..09f85c5 100644
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
+++ b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
@@ -9,7 +9,7 @@
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 /*
- * $RCSfile: LocalProxyLaunchDelegate.java,v $ $Revision: 1.16 $ $Date: 2004/11/22 22:23:05 $
+ * $RCSfile: LocalProxyLaunchDelegate.java,v $ $Revision: 1.17 $ $Date: 2004/12/16 18:35:37 $
  */
 package org.eclipse.jem.internal.proxy.remote;
 
@@ -34,6 +34,8 @@
 import org.eclipse.jem.internal.proxy.remote.awt.REMRegisterAWT;
 import org.eclipse.jem.internal.temp.VETimerTests;
 
+import com.ibm.wtp.common.logger.proxy.Logger;
+
 /**
  * Launch Delegate for launching Local (i.e. remote vm is on local system). Here "remote" means the
  * registry is not in the IDE but in a separate VM, and "local" means that is in on the local
@@ -293,7 +295,9 @@
 				}
 
 				public void streamAppended(String newText, IStreamMonitor monitor) {
-					ProxyPlugin.getPlugin().getLogger().log(tracePrefix + newText, level);
+					Logger logger = ProxyPlugin.getPlugin().getLogger();
+					if (logger.isLoggingLevel(level))
+						logger.log(tracePrefix + newText, level);
 				}
 			};
 
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java
index 81479e3..f58ba78 100644
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java
+++ b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaClassJDOMAdaptor.java
@@ -11,7 +11,7 @@
 package org.eclipse.jem.internal.adapters.jdom;
 /*
  *  $RCSfile: JavaClassJDOMAdaptor.java,v $
- *  $Revision: 1.11 $  $Date: 2004/10/01 19:02:36 $ 
+ *  $Revision: 1.12 $  $Date: 2004/12/16 18:36:45 $ 
  */
 
 import java.util.*;
@@ -452,8 +452,11 @@
 					hasReflectedFields = true;
 				} catch (Throwable e) {
 					hasReflectedFields = false;
-					Logger.getLogger().log(ResourceHandler.getString("Failed_reflecting_values_ERROR_"), Level.WARNING); //$NON-NLS-1$ = "Failed reflecting values!!!"
-					Logger.getLogger().log(e);					
+					Logger logger = Logger.getLogger();
+					if (logger.isLoggingLevel(Level.WARNING)) {
+						logger.log(ResourceHandler.getString("Failed_reflecting_values_ERROR_"), Level.WARNING); //$NON-NLS-1$ = "Failed reflecting values!!!"
+						logger.logWarning(e); 
+					}					
 				} finally {
 					isReflectingFields = false;
 				}
@@ -470,8 +473,11 @@
 					hasReflectedMethods = addMethods();
 				} catch (Throwable e) {
 					hasReflectedMethods = false;
-					Logger.getLogger().log(ResourceHandler.getString("Failed_reflecting_values_ERROR_"), Level.WARNING); //$NON-NLS-1$ = "Failed reflecting values!!!"
-					Logger.getLogger().log(e);					
+					Logger logger = Logger.getLogger();
+					if (logger.isLoggingLevel(Level.WARNING)) {
+						logger.log(ResourceHandler.getString("Failed_reflecting_values_ERROR_"), Level.WARNING); //$NON-NLS-1$ = "Failed reflecting values!!!"
+						logger.logWarning(e); 
+					}					
 				} finally {
 					isReflectingMethods = false;
 					if (!hasReflected)
@@ -535,7 +541,9 @@
 			else
 				javaClassTarget.setKind(TypeKind.INTERFACE_LITERAL);
 		} catch (JavaModelException npe) {
-			JavaPlugin.getDefault().getLogger().log(ResourceHandler.getString("Error_Introspecting_Flags_ERROR_", new Object[] { javaClassTarget.getQualifiedName(), npe.getMessage()}), Level.WARNING); //$NON-NLS-1$ = "error introspecting flags on {0}"
+			Logger logger = JavaPlugin.getDefault().getLogger();
+			if (logger.isLoggingLevel(Level.WARNING))
+				logger.log(ResourceHandler.getString("Error_Introspecting_Flags_ERROR_", new Object[] { javaClassTarget.getQualifiedName(), npe.getMessage()}), Level.WARNING); //$NON-NLS-1$ = "error introspecting flags on {0}"
 		}
 	}
 	/**
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaReflectionSynchronizer.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaReflectionSynchronizer.java
index d232d4a..a44f8d2 100644
--- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaReflectionSynchronizer.java
+++ b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/internal/adapters/jdom/JavaReflectionSynchronizer.java
@@ -11,7 +11,7 @@
 package org.eclipse.jem.internal.adapters.jdom;
 /*
  *  $RCSfile: JavaReflectionSynchronizer.java,v $
- *  $Revision: 1.6 $  $Date: 2004/08/27 15:35:09 $ 
+ *  $Revision: 1.7 $  $Date: 2004/12/16 18:36:45 $ 
  */
 
 import java.util.ArrayList;
@@ -23,6 +23,8 @@
 import org.eclipse.jdt.core.*;
 
 import org.eclipse.jem.internal.plugin.JavaPlugin;
+
+import com.ibm.wtp.common.logger.proxy.Logger;
 /**
  * Insert the type's description here.
  * Creation date: (11/1/2000 11:42:05 AM)
@@ -220,7 +222,9 @@
 		String name = element.getElementName();
 		if (element == null || name.length() <= 5 || !name.substring(name.length() - 5).equals(".java")) { //$NON-NLS-1$
 			// Should not be here, 
-			JavaPlugin.getDefault().getLogger().log("Invalid .java file: " + name, Level.FINE); //$NON-NLS-1$
+			Logger logger = JavaPlugin.getDefault().getLogger();
+			if (logger.isLoggingLevel(Level.FINE))
+				logger.log("Invalid .java file: " + name, Level.FINE); //$NON-NLS-1$
 			// Make a guess, at worst case, nothing will come out of this.
 			int index = name.lastIndexOf("."); //$NON-NLS-1$
 			if (index >= 0)
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/ReflectionAdaptor.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/ReflectionAdaptor.java
index 8dd4ec8..0369f22 100644
--- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/ReflectionAdaptor.java
+++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/ReflectionAdaptor.java
@@ -11,7 +11,7 @@
 package org.eclipse.jem.internal.java.adapters;
 /*
  *  $RCSfile: ReflectionAdaptor.java,v $
- *  $Revision: 1.5 $  $Date: 2004/08/27 15:33:17 $ 
+ *  $Revision: 1.6 $  $Date: 2004/12/16 18:35:30 $ 
  */
 import java.util.logging.Level;
 
@@ -126,8 +126,11 @@
 				hasReflected = false;	// AS long we are a proxy, we won't reflect.
 		} catch (Throwable e) {
 			hasReflected = false;
-			Logger.getLogger().log(ResourceHandler.getString("Failed_reflecting_values_ERROR_"), Level.WARNING); //$NON-NLS-1$ = "Failed reflecting values!!!"
-			Logger.getLogger().log(e);
+			Logger logger = Logger.getLogger();
+			if (logger.isLoggingLevel(Level.WARNING)) {
+				logger.log(ResourceHandler.getString("Failed_reflecting_values_ERROR_"), Level.WARNING); //$NON-NLS-1$ = "Failed reflecting values!!!"
+				logger.logWarning(e);
+			}
 		} finally {
 			isReflecting = false;
 			getTarget().eNotify(new ENotificationImpl((InternalEObject)getTarget(), Notification.SET, REFLECTION_SF, null, null, Notification.NO_INDEX));
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaClassJDKAdaptor.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaClassJDKAdaptor.java
index 8c2bdc0..bd3443d 100644
--- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaClassJDKAdaptor.java
+++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/internal/java/adapters/jdk/JavaClassJDKAdaptor.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: JavaClassJDKAdaptor.java,v $
- *  $Revision: 1.8 $  $Date: 2004/08/27 15:33:17 $ 
+ *  $Revision: 1.9 $  $Date: 2004/12/16 18:35:29 $ 
  */
 
 package org.eclipse.jem.internal.java.adapters.jdk;
@@ -75,11 +75,14 @@
 		try {
 			methods = getSourceType().getDeclaredMethods();
 		} catch (NoClassDefFoundError error) {
-			Logger
-					.getLogger()
-					.log(
-							ResourceHandler.getString(
-									"Could_Not_Reflect_Methods_ERROR_", new Object[] { getJavaClassTarget().getQualifiedName(), error.toString()}), Level.WARNING); //$NON-NLS-1$
+			Logger logger = Logger.getLogger();
+			if (logger.isLoggingLevel(Level.WARNING)) {
+				logger
+						.log(
+								ResourceHandler
+										.getString(
+												"Could_Not_Reflect_Methods_ERROR_", new Object[] { getJavaClassTarget().getQualifiedName(), error.toString()}), Level.WARNING); //$NON-NLS-1$
+			}
 		}
 		for (int i = 0; i < methods.length; i++) {
 			targetMethods.add(createJavaMethod(methods[i], resource));
@@ -90,12 +93,14 @@
 		try {
 			ctors = getSourceType().getDeclaredConstructors();
 		} catch (NoClassDefFoundError error) {
-			Logger
-					.getLogger()
-					.log(
-							ResourceHandler
-									.getString(
-											"Could_Not_Reflect_Constructors_ERROR_", new Object[] { getJavaClassTarget().getQualifiedName(), error.getMessage()}), Level.WARNING); //$NON-NLS-1$
+			Logger logger = Logger.getLogger();
+			if (logger.isLoggingLevel(Level.WARNING)) {
+				logger
+						.log(
+								ResourceHandler
+										.getString(
+												"Could_Not_Reflect_Constructors_ERROR_", new Object[] { getJavaClassTarget().getQualifiedName(), error.getMessage()}), Level.WARNING); //$NON-NLS-1$
+			}
 		}
 		for (int i = 0; i < ctors.length; i++) {
 			targetMethods.add(createJavaMethod(ctors[i], resource));