aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicola Ken Barozzi <nicolaken@apache.org>2002-06-11 21:07:58 +0000
committerNicola Ken Barozzi <nicolaken@apache.org>2002-06-11 21:07:58 +0000
commit48a94a3d0f156d780cc8c15eb9a870e246d81aea (patch)
tree4628bb1a4be082ac7ba2ad3a1cbfd99ade66181e
parentce21eea4bbbdc3b8d659a7a925de967f524a0e5b (diff)
downloadpoi-48a94a3d0f156d780cc8c15eb9a870e246d81aea.tar.gz
poi-48a94a3d0f156d780cc8c15eb9a870e246d81aea.zip
Removed runtime dependency from commons logging.
Now the PoiLogFactory will try to create a logger using the System property named "org.apache.poi.util.POILogger". If it fails, the NullLogger is used. There is also a basic SystemOutLogger and the former CommonsLogger. Haven't checked the code that much, but it compiles and POI works. git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352672 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/poi/util/CommonsLogger.java191
-rw-r--r--src/java/org/apache/poi/util/NullLogger.java503
-rw-r--r--src/java/org/apache/poi/util/POILogFactory.java16
-rw-r--r--src/java/org/apache/poi/util/POILogger.java155
-rw-r--r--src/java/org/apache/poi/util/SystemOutLogger.java108
-rw-r--r--src/resources/devtools/complete-log4j.properties (renamed from src/resources/devtools/log4j.properties)0
-rw-r--r--src/resources/devtools/fatal-only-log4j.properties (renamed from src/java/log4j.properties)0
7 files changed, 848 insertions, 125 deletions
diff --git a/src/java/org/apache/poi/util/CommonsLogger.java b/src/java/org/apache/poi/util/CommonsLogger.java
new file mode 100644
index 0000000000..6b6f816611
--- /dev/null
+++ b/src/java/org/apache/poi/util/CommonsLogger.java
@@ -0,0 +1,191 @@
+
+/*
+ * ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache POI" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache POI", nor may "Apache" appear in their name, without
+ * prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+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
+ * calls as cheap as possible by performing lazy evaluation of the log
+ * message.<p>
+ *
+ * @author Marc Johnson (mjohnson at apache dot org)
+ * @author Glen Stampoultzis (glens at apache.org)
+ * @author Nicola Ken Barozzi (nicolaken at apache.org)
+ */
+
+public class CommonsLogger extends POILogger
+{
+
+ private static LogFactory _creator = LogFactory.getFactory();
+ private Log log = null;
+
+
+ public void initialize(final String cat)
+ {
+ this.log = _creator.getInstance(cat);
+ }
+
+ /**
+ * Log a message
+ *
+ * @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)
+ {
+ if(log.isFatalEnabled())
+ {
+ log.fatal(obj1);
+ }
+ }
+ else if(level==ERROR)
+ {
+ if(log.isErrorEnabled())
+ {
+ log.error(obj1);
+ }
+ }
+ else if(level==WARN)
+ {
+ if(log.isWarnEnabled())
+ {
+ log.warn(obj1);
+ }
+ }
+ else if(level==INFO)
+ {
+ if(log.isInfoEnabled())
+ {
+ log.info(obj1);
+ }
+ }
+ else if(level==DEBUG)
+ {
+ if(log.isDebugEnabled())
+ {
+ log.debug(obj1);
+ }
+ }
+ else
+ {
+ if(log.isTraceEnabled())
+ {
+ log.trace(obj1);
+ }
+ }
+
+ }
+
+ /**
+ * Check if a logger is enabled to log at the specified level
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The logger to check.
+ */
+
+ public boolean check(final int level)
+ {
+ if(level==FATAL)
+ {
+ if(log.isFatalEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==ERROR)
+ {
+ if(log.isErrorEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==WARN)
+ {
+ if(log.isWarnEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==INFO)
+ {
+ if(log.isInfoEnabled())
+ {
+ return true;
+ }
+ }
+ else if(level==DEBUG)
+ {
+ if(log.isDebugEnabled())
+ {
+ return true;
+ }
+ }
+
+ return false;
+
+ }
+
+
+} // end package scope class POILogger
+
diff --git a/src/java/org/apache/poi/util/NullLogger.java b/src/java/org/apache/poi/util/NullLogger.java
new file mode 100644
index 0000000000..5e6942b55c
--- /dev/null
+++ b/src/java/org/apache/poi/util/NullLogger.java
@@ -0,0 +1,503 @@
+
+/*
+ * ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache POI" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache POI", nor may "Apache" appear in their name, without
+ * prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+package org.apache.poi.util;
+
+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
+ * calls as cheap as possible by performing lazy evaluation of the log
+ * message.<p>
+ *
+ * @author Marc Johnson (mjohnson at apache dot org)
+ * @author Glen Stampoultzis (glens at apache.org)
+ * @author Nicola Ken Barozzi (nicolaken at apache.org)
+ */
+
+public class NullLogger extends POILogger
+{
+ public void initialize(final String cat)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The object to log.
+ */
+
+ public void log(final int level, final Object obj1)
+ {
+ //do nothing
+ }
+
+ /**
+ * Check if a logger is enabled to log at the specified level
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The logger to check.
+ */
+
+ public boolean check(final int level)
+ {
+ return false;
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first object to place in the message
+ * @param obj2 second object to place in the message
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third Object to place in the message
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third Object to place in the message
+ * @param obj4 fourth Object to place in the message
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third Object to place in the message
+ * @param obj4 fourth Object to place in the message
+ * @param obj5 fifth Object to place in the message
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third Object to place in the message
+ * @param obj4 fourth Object to place in the message
+ * @param obj5 fifth Object to place in the message
+ * @param obj6 sixth Object to place in the message
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5,
+ final Object obj6)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third Object to place in the message
+ * @param obj4 fourth Object to place in the message
+ * @param obj5 fifth Object to place in the message
+ * @param obj6 sixth Object to place in the message
+ * @param obj7 seventh Object to place in the message
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5,
+ final Object obj6, final Object obj7)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third Object to place in the message
+ * @param obj4 fourth Object to place in the message
+ * @param obj5 fifth Object to place in the message
+ * @param obj6 sixth Object to place in the message
+ * @param obj7 seventh Object to place in the message
+ * @param obj8 eighth Object to place in the message
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5,
+ final Object obj6, final Object obj7, final Object obj8)
+ {
+ //do nothing
+ }
+
+ /**
+ * 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)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param exception An exception to be logged
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Throwable exception)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third object to place in the message
+ * @param exception An error message to be logged
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Throwable exception)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third object to place in the message
+ * @param obj4 fourth object to place in the message
+ * @param exception An exception to be logged
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4,
+ final Throwable exception)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third object to place in the message
+ * @param obj4 fourth object to place in the message
+ * @param obj5 fifth object to place in the message
+ * @param exception An exception to be logged
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5,
+ final Throwable exception)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third object to place in the message
+ * @param obj4 fourth object to place in the message
+ * @param obj5 fifth object to place in the message
+ * @param obj6 sixth object to place in the message
+ * @param exception An exception to be logged
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5,
+ final Object obj6, final Throwable exception)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third object to place in the message
+ * @param obj4 fourth object to place in the message
+ * @param obj5 fifth object to place in the message
+ * @param obj6 sixth object to place in the message
+ * @param obj7 seventh object to place in the message
+ * @param exception An exception to be logged
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5,
+ final Object obj6, final Object obj7,
+ final Throwable exception)
+ {
+ //do nothing
+ }
+
+ /**
+ * Log a message. Lazily appends Object parameters together.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 first Object to place in the message
+ * @param obj2 second Object to place in the message
+ * @param obj3 third object to place in the message
+ * @param obj4 fourth object to place in the message
+ * @param obj5 fifth object to place in the message
+ * @param obj6 sixth object to place in the message
+ * @param obj7 seventh object to place in the message
+ * @param obj8 eighth object to place in the message
+ * @param exception An exception to be logged
+ */
+
+ public void log(final int level, final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4, final Object obj5,
+ final Object obj6, final Object obj7, final Object obj8,
+ final Throwable exception)
+ {
+ //do nothing
+ }
+
+ /**
+ * Logs a formated message. The message itself may contain %
+ * characters as place holders. This routine will attempt to match
+ * the placeholder by looking at the type of parameter passed to
+ * obj1.<p>
+ *
+ * If the parameter is an array, it traverses the array first and
+ * matches parameters sequentially against the array items.
+ * Otherwise the parameters after <code>message</code> are matched
+ * in order.<p>
+ *
+ * If the place holder matches against a number it is printed as a
+ * whole number. This can be overridden by specifying a precision
+ * in the form %n.m where n is the padding for the whole part and
+ * m is the number of decimal places to display. n can be excluded
+ * if desired. n and m may not be more than 9.<p>
+ *
+ * If the last parameter (after flattening) is a Throwable it is
+ * logged specially.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param message The message to log.
+ * @param obj1 The first object to match against.
+ */
+
+ public void logFormatted(final int level, final String message,
+ final Object obj1)
+ {
+ //do nothing
+ }
+
+ /**
+ * Logs a formated message. The message itself may contain %
+ * characters as place holders. This routine will attempt to match
+ * the placeholder by looking at the type of parameter passed to
+ * obj1.<p>
+ *
+ * If the parameter is an array, it traverses the array first and
+ * matches parameters sequentially against the array items.
+ * Otherwise the parameters after <code>message</code> are matched
+ * in order.<p>
+ *
+ * If the place holder matches against a number it is printed as a
+ * whole number. This can be overridden by specifying a precision
+ * in the form %n.m where n is the padding for the whole part and
+ * m is the number of decimal places to display. n can be excluded
+ * if desired. n and m may not be more than 9.<p>
+ *
+ * If the last parameter (after flattening) is a Throwable it is
+ * logged specially.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param message The message to log.
+ * @param obj1 The first object to match against.
+ * @param obj2 The second object to match against.
+ */
+
+ public void logFormatted(final int level, final String message,
+ final Object obj1, final Object obj2)
+ {
+ //do nothing
+ }
+
+ /**
+ * Logs a formated message. The message itself may contain %
+ * characters as place holders. This routine will attempt to match
+ * the placeholder by looking at the type of parameter passed to
+ * obj1.<p>
+ *
+ * If the parameter is an array, it traverses the array first and
+ * matches parameters sequentially against the array items.
+ * Otherwise the parameters after <code>message</code> are matched
+ * in order.<p>
+ *
+ * If the place holder matches against a number it is printed as a
+ * whole number. This can be overridden by specifying a precision
+ * in the form %n.m where n is the padding for the whole part and
+ * m is the number of decimal places to display. n can be excluded
+ * if desired. n and m may not be more than 9.<p>
+ *
+ * If the last parameter (after flattening) is a Throwable it is
+ * logged specially.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param message The message to log.
+ * @param obj1 The first object to match against.
+ * @param obj2 The second object to match against.
+ * @param obj3 The third object to match against.
+ */
+
+ public void logFormatted(final int level, final String message,
+ final Object obj1, final Object obj2,
+ final Object obj3)
+ {
+ //do nothing
+ }
+
+ /**
+ * Logs a formated message. The message itself may contain %
+ * characters as place holders. This routine will attempt to match
+ * the placeholder by looking at the type of parameter passed to
+ * obj1.<p>
+ *
+ * If the parameter is an array, it traverses the array first and
+ * matches parameters sequentially against the array items.
+ * Otherwise the parameters after <code>message</code> are matched
+ * in order.<p>
+ *
+ * If the place holder matches against a number it is printed as a
+ * whole number. This can be overridden by specifying a precision
+ * in the form %n.m where n is the padding for the whole part and
+ * m is the number of decimal places to display. n can be excluded
+ * if desired. n and m may not be more than 9.<p>
+ *
+ * If the last parameter (after flattening) is a Throwable it is
+ * logged specially.
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param message The message to log.
+ * @param obj1 The first object to match against.
+ * @param obj2 The second object to match against.
+ * @param obj3 The third object to match against.
+ * @param obj4 The forth object to match against.
+ */
+
+ public void logFormatted(final int level, final String message,
+ final Object obj1, final Object obj2,
+ final Object obj3, final Object obj4)
+ {
+ //do nothing
+ }
+
+}
+
diff --git a/src/java/org/apache/poi/util/POILogFactory.java b/src/java/org/apache/poi/util/POILogFactory.java
index 2378ab86a7..0dff5a138c 100644
--- a/src/java/org/apache/poi/util/POILogFactory.java
+++ b/src/java/org/apache/poi/util/POILogFactory.java
@@ -60,8 +60,6 @@ import java.io.IOException;
import java.util.*;
-import org.apache.commons.logging.*;
-
/**
* Provides logging without clients having to mess with
* configuration/initialization.
@@ -73,7 +71,6 @@ import org.apache.commons.logging.*;
public class POILogFactory
{
- private static LogFactory _creator = LogFactory.getFactory();
// map of POILogger instances, with classes as keys
private static Map _loggers = new HashMap();;
@@ -118,7 +115,18 @@ public class POILogFactory
}
else
{
- logger = new POILogger(_creator.getInstance(cat));
+ try{
+ String loggerClassName = System.getProperty("org.apache.poi.util.POILogger");
+ Class loggerClass = Class.forName(loggerClassName);
+ logger = ( POILogger ) loggerClass.newInstance();
+ }
+ catch(Exception e){
+
+ logger = new NullLogger();
+ }
+
+ logger.initialize(cat);
+
_loggers.put(cat, logger);
}
return logger;
diff --git a/src/java/org/apache/poi/util/POILogger.java b/src/java/org/apache/poi/util/POILogger.java
index a6d066c38d..86c063bc72 100644
--- a/src/java/org/apache/poi/util/POILogger.java
+++ b/src/java/org/apache/poi/util/POILogger.java
@@ -55,12 +55,10 @@
*/
package org.apache.poi.util;
-import org.apache.commons.logging.Log;
-
import java.util.*;
/**
- * A logger class that strives to make it as easy as possible for
+ * A logger interface that strives to make it as easy as possible for
* developers to write log calls, while simultaneously making those
* calls as cheap as possible by performing lazy evaluation of the log
* message.<p>
@@ -70,9 +68,9 @@ import java.util.*;
* @author Nicola Ken Barozzi (nicolaken at apache.org)
*/
-public class POILogger
+public abstract class POILogger
{
- private Log log = null;
+
public static final int DEBUG = 1;
public static final int INFO = 3;
public static final int WARN = 5;
@@ -85,116 +83,30 @@ public class POILogger
*
* @param log the object that does the real work of logging
*/
-
- POILogger(final Log log)
- {
- this.log = log;
- }
+ POILogger()
+ {}
+
+ abstract public void initialize(final String cat);
+
+ abstract public void log(final int level, final Object obj1);
/**
- * Log a message
+ * Check if a logger is enabled to log at the specified level
*
* @param level One of DEBUG, INFO, WARN, ERROR, FATAL
- * @param obj1 The object to log.
+ * @param obj1 The logger to check.
*/
-
- public void log(final int level, final Object obj1)
- {
- if(level==FATAL)
- {
- if(log.isFatalEnabled())
- {
- log.fatal(obj1);
- }
- }
- else if(level==ERROR)
- {
- if(log.isErrorEnabled())
- {
- log.error(obj1);
- }
- }
- else if(level==WARN)
- {
- if(log.isWarnEnabled())
- {
- log.warn(obj1);
- }
- }
- else if(level==INFO)
- {
- if(log.isInfoEnabled())
- {
- log.info(obj1);
- }
- }
- else if(level==DEBUG)
- {
- if(log.isDebugEnabled())
- {
- log.debug(obj1);
- }
- }
- else
- {
- if(log.isTraceEnabled())
- {
- log.trace(obj1);
- }
- }
-
- }
+ abstract public boolean check(final int level);
/**
- * Check if a logger is enabled to log at the specified level
+ * Log a message. Lazily appends Object parameters together.
*
* @param level One of DEBUG, INFO, WARN, ERROR, FATAL
- * @param obj1 The logger to check.
+ * @param obj1 first object to place in the message
+ * @param obj2 second object to place in the message
*/
- public boolean check(final Log log, final int level)
- {
- if(level==FATAL)
- {
- if(log.isFatalEnabled())
- {
- return true;
- }
- }
- else if(level==ERROR)
- {
- if(log.isErrorEnabled())
- {
- return true;
- }
- }
- else if(level==WARN)
- {
- if(log.isWarnEnabled())
- {
- return true;
- }
- }
- else if(level==INFO)
- {
- if(log.isInfoEnabled())
- {
- return true;
- }
- }
- else if(level==DEBUG)
- {
- if(log.isDebugEnabled())
- {
- return true;
- }
- }
-
- return false;
-
- }
-
- /**
+ /**
* Log a message. Lazily appends Object parameters together.
*
* @param level One of DEBUG, INFO, WARN, ERROR, FATAL
@@ -204,7 +116,7 @@ public class POILogger
public void log(final int level, final Object obj1, final Object obj2)
{
- if (check(log, level))
+ if (check(level))
{
log(level, new StringBuffer(32).append(obj1).append(obj2));
}
@@ -224,7 +136,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level,
new StringBuffer(48).append(obj1).append(obj2)
@@ -247,7 +159,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level,
new StringBuffer(64).append(obj1).append(obj2)
@@ -271,7 +183,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level,
new StringBuffer(80).append(obj1).append(obj2)
@@ -297,7 +209,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level ,
new StringBuffer(96).append(obj1).append(obj2)
@@ -324,7 +236,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level,
new StringBuffer(112).append(obj1).append(obj2)
@@ -353,7 +265,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level,
new StringBuffer(128).append(obj1).append(obj2)
@@ -390,7 +302,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level, new StringBuffer(32).append(obj1).append(obj2),
exception);
@@ -412,7 +324,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level, new StringBuffer(48).append(obj1).append(obj2)
.append(obj3), exception);
@@ -436,7 +348,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level, new StringBuffer(64).append(obj1).append(obj2)
.append(obj3).append(obj4), exception);
@@ -461,7 +373,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level, new StringBuffer(80).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5), exception);
@@ -487,7 +399,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level , new StringBuffer(96).append(obj1)
.append(obj2).append(obj3).append(obj4).append(obj5)
@@ -516,7 +428,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level, new StringBuffer(112).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5).append(obj6)
@@ -546,7 +458,7 @@ public class POILogger
{
- if (check(log, level))
+ if (check(level))
{
log(level, new StringBuffer(128).append(obj1).append(obj2)
.append(obj3).append(obj4).append(obj5).append(obj6)
@@ -696,14 +608,14 @@ public class POILogger
{
obj1, obj2, obj3, obj4
});
- }
+ }
private void commonLogFormatted(final int level, final String message,
final Object [] unflatParams)
{
- if (check(log, level))
+ if (check(level))
{
Object[] params = flattenArrays(unflatParams);
@@ -816,5 +728,6 @@ public class POILogger
}
return results;
}
-} // end package scope class POILogger
+
+} // end package scope abstract class POILogger
diff --git a/src/java/org/apache/poi/util/SystemOutLogger.java b/src/java/org/apache/poi/util/SystemOutLogger.java
new file mode 100644
index 0000000000..a1c595d53d
--- /dev/null
+++ b/src/java/org/apache/poi/util/SystemOutLogger.java
@@ -0,0 +1,108 @@
+
+/*
+ * ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache POI" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache POI", nor may "Apache" appear in their name, without
+ * prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+package org.apache.poi.util;
+
+import org.apache.commons.logging.Log;
+
+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
+ * calls as cheap as possible by performing lazy evaluation of the log
+ * message.<p>
+ *
+ * @author Marc Johnson (mjohnson at apache dot org)
+ * @author Glen Stampoultzis (glens at apache.org)
+ * @author Nicola Ken Barozzi (nicolaken at apache.org)
+ */
+
+public class SystemOutLogger extends POILogger
+{
+ private String cat;
+
+ public void initialize(final String cat)
+ {
+ this.cat=cat;
+ }
+
+ /**
+ * Log a message
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The object to log.
+ */
+
+ public void log(final int level, final Object obj1)
+ {
+ System.out.println("["+cat+"] "+obj1);
+ }
+
+ /**
+ * Check if a logger is enabled to log at the specified level
+ *
+ * @param level One of DEBUG, INFO, WARN, ERROR, FATAL
+ * @param obj1 The logger to check.
+ */
+
+ public boolean check(final int level)
+ {
+ return true;
+ }
+
+
+} // end package scope class POILogger
+
diff --git a/src/resources/devtools/log4j.properties b/src/resources/devtools/complete-log4j.properties
index 1eef6c2488..1eef6c2488 100644
--- a/src/resources/devtools/log4j.properties
+++ b/src/resources/devtools/complete-log4j.properties
diff --git a/src/java/log4j.properties b/src/resources/devtools/fatal-only-log4j.properties
index 404b985295..404b985295 100644
--- a/src/java/log4j.properties
+++ b/src/resources/devtools/fatal-only-log4j.properties