]> source.dussan.org Git - poi.git/commitdiff
Improvements to how SystemOutLogger and CommonsLogger log messages with exceptions...
authorNick Burch <nick@apache.org>
Fri, 1 Feb 2008 12:29:38 +0000 (12:29 +0000)
committerNick Burch <nick@apache.org>
Fri, 1 Feb 2008 12:29:38 +0000 (12:29 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@617487 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/changes.xml
src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/util/CommonsLogger.java
src/java/org/apache/poi/util/POILogger.java
src/java/org/apache/poi/util/SystemOutLogger.java

index da8fe3be4c9e64eb1fa951f0e048a7180ecf7b27..8f5a097be14eb727790faf6a90c8f208b916f800 100644 (file)
@@ -36,6 +36,7 @@
 
                <!-- Don't forget to update status.xml too! -->
         <release version="3.1-beta1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="add">44326 - Improvements to how SystemOutLogger and CommonsLogger log messages with exceptions, and avoid an infinite loop with certain log messages with exceptions</action>
            <action dev="POI-DEVELOPERS" type="add">Support for a completed Record based "pull" stream, via org.apache.poi.hssf.eventusermodel.HSSFRecordStream, to complement the existing "push" Event User Model listener stuff</action>
         </release>
         <release version="3.0.2-FINAL" date="2008-02-04">
index 65f80fa56246a4259fd088d6f863b4c9c0e0f06f..d282a681160c9da5c089a815df0a1f193de904e8 100644 (file)
@@ -33,6 +33,7 @@
        <!-- Don't forget to update changes.xml too! -->
     <changes>
         <release version="3.1-beta1" date="2008-??-??">
+           <action dev="POI-DEVELOPERS" type="add">44326 - Improvements to how SystemOutLogger and CommonsLogger log messages with exceptions, and avoid an infinite loop with certain log messages with exceptions</action>
            <action dev="POI-DEVELOPERS" type="add">Support for a completed Record based "pull" stream, via org.apache.poi.hssf.eventusermodel.HSSFRecordStream, to complement the existing "push" Event User Model listener stuff</action>
         </release>
         <release version="3.0.2-FINAL" date="2008-02-04">
index 4265a88af893597636e6e3601bfb448aaf1af8bf..16a48f28f6e6cbb3ae519de731e3d41c52c4b720 100644 (file)
@@ -22,8 +22,6 @@ package org.apache.poi.util;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import java.util.*;
-
 /**
  * A logger class that strives to make it as easy as possible for
  * developers to write log calls, while simultaneously making those
@@ -53,7 +51,6 @@ public class CommonsLogger extends POILogger
      * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
      * @param obj1 The object to log.
      */
-
     public void log(final int level, final Object obj1)
     {
         if(level==FATAL)
@@ -98,6 +95,78 @@ public class CommonsLogger extends POILogger
             log.trace(obj1);
           }
         }
+    }
+    
+    /**
+     * Log a message
+     *
+     * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+     * @param obj1 The object to log.  This is converted to a string.
+     * @param exception An exception to be logged
+     */
+    public void log(final int level, final Object obj1,
+                    final Throwable exception) 
+    {
+        if(level==FATAL)
+        {
+          if(log.isFatalEnabled())
+          {
+            if(obj1 != null)
+               log.fatal(obj1, exception);
+            else
+               log.fatal(exception);
+          }
+        }
+        else if(level==ERROR)
+        {
+          if(log.isErrorEnabled())
+          {
+            if(obj1 != null)
+               log.error(obj1, exception);
+            else
+               log.error(exception);
+          }
+        }
+        else if(level==WARN)
+        {
+          if(log.isWarnEnabled())
+          {
+            if(obj1 != null)
+               log.warn(obj1, exception);
+            else
+               log.warn(exception);
+          }
+        }
+        else if(level==INFO)
+        {
+          if(log.isInfoEnabled())
+          {
+               if(obj1 != null)
+               log.info(obj1, exception);
+               else
+                  log.info(exception);
+          }
+        }
+        else if(level==DEBUG)
+        {
+          if(log.isDebugEnabled())
+          {
+               if(obj1 != null)
+               log.debug(obj1, exception);
+               else
+                  log.debug(exception);
+          }
+        }
+        else
+        {
+          if(log.isTraceEnabled())
+          {
+               if(obj1 != null)
+               log.trace(obj1, exception);
+               else
+                  log.trace(exception);
+          }
+        }
 
     }
 
index b2d358d4d8eaf0a6ee738e30d112366bd0b5c884..514edf90ca9e8cfac5795b7edf3578036136eb11 100644 (file)
@@ -51,7 +51,24 @@ public abstract class POILogger
     
     abstract public void initialize(final String cat);
     
+    /**
+     * Log a message
+     *
+     * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+     * @param obj1 The object to log.  This is converted to a string.
+     */
     abstract public void log(final int level, final Object obj1);
+    
+    /**
+     * Log a message
+     *
+     * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+     * @param obj1 The object to log.  This is converted to a string.
+     * @param exception An exception to be logged
+     */
+    abstract public void log(final int level, final Object obj1,
+                    final Throwable exception);
+
 
     /**
      * Check if a logger is enabled to log at the specified level
@@ -237,17 +254,15 @@ public abstract class POILogger
     }
 
     /**
-     * Log a message
+     * Log an exception, without a message
      *
      * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
-     * @param obj1 The object to log.  This is converted to a string.
      * @param exception An exception to be logged
      */
 
-    public void log(final int level, final Object obj1,
-                    final Throwable exception)
+    public void log(final int level, final Throwable exception)
     {
-        log(level , obj1, exception);
+        log(level, null, exception);
     }
 
     /**
index 8b3dc50d9a715d612162e7615f98f18c79fdafbc..af678e186ac92e8c36059deac3a83c36696a90e4 100644 (file)
@@ -49,8 +49,24 @@ public class SystemOutLogger extends POILogger
 
     public void log(final int level, final Object obj1)
     {
-        if (check(level))
+       log(level, obj1, null);
+    }
+    
+    /**
+     * Log a message
+     *
+     * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+     * @param obj1 The object to log.  This is converted to a string.
+     * @param exception An exception to be logged
+     */
+    public void log(final int level, final Object obj1,
+                    final Throwable exception) {
+        if (check(level)) {
             System.out.println("["+cat+"] "+obj1);
+            if(exception != null) {
+               exception.printStackTrace(System.out);
+            }
+        }
     }
 
     /**