mirror of https://github.com/apache/poi.git
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
This commit is contained in:
parent
ce21eea4bb
commit
48a94a3d0f
|
@ -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
|
||||
|
|
@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
@ -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,65 +83,12 @@ public class POILogger
|
|||
*
|
||||
* @param log the object that does the real work of logging
|
||||
*/
|
||||
|
||||
POILogger(final Log log)
|
||||
{
|
||||
this.log = log;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
POILogger()
|
||||
{}
|
||||
|
||||
abstract public void initialize(final String cat);
|
||||
|
||||
abstract public void log(final int level, final Object obj1);
|
||||
|
||||
/**
|
||||
* Check if a logger is enabled to log at the specified level
|
||||
|
@ -151,48 +96,7 @@ public class POILogger
|
|||
* @param level One of DEBUG, INFO, WARN, ERROR, FATAL
|
||||
* @param obj1 The logger to check.
|
||||
*/
|
||||
|
||||
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;
|
||||
|
||||
}
|
||||
abstract public boolean check(final int level);
|
||||
|
||||
/**
|
||||
* Log a message. Lazily appends Object parameters together.
|
||||
|
@ -202,9 +106,17 @@ public class POILogger
|
|||
* @param obj2 second object to place in the message
|
||||
*/
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
Loading…
Reference in New Issue