I'm committing this on behalf of my collegue Ingo Proetel. This adds
checks to a couple of log methods if the specified level is actually
allowed to be logged. Otherwise we would end up building up the
stacktrace which could be very expensive compared to do nothing at
all :-)

2005-08-12  Roman Kennke  <[EMAIL PROTECTED]>

        Reported by: Ingo Proetel  <[EMAIL PROTECTED]>
        * java/util/logging/Logger.java
        This applies to a couple of log() methods:
        (log): Added check if the specified level is actually enabled,
        otherwise ignore logging request.

/Roman

Index: java/util/logging/Logger.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/util/logging/Logger.java,v
retrieving revision 1.11
diff -u -r1.11 Logger.java
--- java/util/logging/Logger.java	15 Jul 2005 12:53:15 -0000	1.11
+++ java/util/logging/Logger.java	12 Aug 2005 14:28:37 -0000
@@ -577,7 +577,8 @@
 
   public void log(Level level, String message)
   {
-    log(level, message, (Object[]) null);
+    if (isLoggable(level))
+      log(level, message, (Object[]) null);
   }
 
 
@@ -585,12 +586,15 @@
 			       String message,
 			       Object param)
   {
-    StackTraceElement caller = getCallerStackFrame();
-    logp(level,
-	 caller != null ? caller.getClassName() : "<unknown>",
-	 caller != null ? caller.getMethodName() : "<unknown>",
-	 message,
-	 param);
+    if (isLoggable(level))
+      {
+        StackTraceElement caller = getCallerStackFrame();
+        logp(level,
+             caller != null ? caller.getClassName() : "<unknown>",
+             caller != null ? caller.getMethodName() : "<unknown>",
+             message,
+             param);
+      }
   }
 
 
@@ -598,12 +602,15 @@
 			       String message,
 			       Object[] params)
   {
-    StackTraceElement caller = getCallerStackFrame();
-    logp(level,
-	 caller != null ? caller.getClassName() : "<unknown>",
-	 caller != null ? caller.getMethodName() : "<unknown>",
-	 message,
-	 params);
+    if (isLoggable(level))
+      {
+        StackTraceElement caller = getCallerStackFrame();
+        logp(level,
+             caller != null ? caller.getClassName() : "<unknown>",
+             caller != null ? caller.getMethodName() : "<unknown>",
+             message,
+             params);
+      }
   }
 
 
@@ -611,12 +618,15 @@
 			       String message,
 			       Throwable thrown)
   {
-    StackTraceElement caller = getCallerStackFrame();    
-    logp(level,
-	 caller != null ? caller.getClassName() : "<unknown>",
-	 caller != null ? caller.getMethodName() : "<unknown>",
-	 message,
-	 thrown);
+    if (isLoggable(level))
+      {
+        StackTraceElement caller = getCallerStackFrame();    
+        logp(level,
+             caller != null ? caller.getClassName() : "<unknown>",
+             caller != null ? caller.getMethodName() : "<unknown>",
+             message,
+             thrown);
+      }
   }
 
 
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to