2002-01-30 21:22:28 -05:00
|
|
|
|
2004-04-09 09:05:39 -04:00
|
|
|
/* ====================================================================
|
|
|
|
Copyright 2002-2004 Apache Software Foundation
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
==================================================================== */
|
|
|
|
|
|
|
|
|
2002-01-30 21:22:28 -05:00
|
|
|
package org.apache.poi.util;
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Provides logging without clients having to mess with
|
|
|
|
* configuration/initialization.
|
|
|
|
*
|
|
|
|
* @author Andrew C. Oliver (acoliver at apache dot org)
|
|
|
|
* @author Marc Johnson (mjohnson at apache dot org)
|
2002-03-14 06:05:10 -05:00
|
|
|
* @author Nicola Ken Barozzi (nicolaken at apache.org)
|
2002-01-30 21:22:28 -05:00
|
|
|
*/
|
|
|
|
|
|
|
|
public class POILogFactory
|
|
|
|
{
|
|
|
|
|
|
|
|
// map of POILogger instances, with classes as keys
|
2002-03-14 06:05:10 -05:00
|
|
|
private static Map _loggers = new HashMap();;
|
|
|
|
|
2002-01-30 21:22:28 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* construct a POILogFactory.
|
|
|
|
*/
|
|
|
|
|
2002-03-14 06:05:10 -05:00
|
|
|
private POILogFactory()
|
2002-01-30 21:22:28 -05:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get a logger, based on a class name
|
|
|
|
*
|
|
|
|
* @param theclass the class whose name defines the log
|
|
|
|
*
|
|
|
|
* @return a POILogger for the specified class
|
|
|
|
*/
|
|
|
|
|
2002-03-14 06:05:10 -05:00
|
|
|
public static POILogger getLogger(final Class theclass)
|
2002-03-16 05:16:43 -05:00
|
|
|
{
|
|
|
|
return getLogger(theclass.getName());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get a logger, based on a String
|
|
|
|
*
|
|
|
|
* @param cat the String that defines the log
|
|
|
|
*
|
|
|
|
* @return a POILogger for the specified class
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static POILogger getLogger(final String cat)
|
2002-01-30 21:22:28 -05:00
|
|
|
{
|
2002-03-14 06:05:10 -05:00
|
|
|
POILogger logger = null;
|
2002-01-30 21:22:28 -05:00
|
|
|
|
2002-03-16 05:16:43 -05:00
|
|
|
if (_loggers.containsKey(cat))
|
2002-01-30 21:22:28 -05:00
|
|
|
{
|
2002-03-16 05:16:43 -05:00
|
|
|
logger = ( POILogger ) _loggers.get(cat);
|
2002-03-14 06:05:10 -05:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2002-06-11 17:07:58 -04:00
|
|
|
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);
|
|
|
|
|
2002-03-16 05:16:43 -05:00
|
|
|
_loggers.put(cat, logger);
|
2002-01-30 21:22:28 -05:00
|
|
|
}
|
|
|
|
return logger;
|
|
|
|
}
|
2002-03-16 05:16:43 -05:00
|
|
|
|
2002-01-30 21:22:28 -05:00
|
|
|
} // end public class POILogFactory
|