/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.xml;
import gw.config.IService;
import gw.util.ILogger;
import gw.util.SystemOutLogger;
/**
* This interface deals with getting a logger for the given category or
* a logger that follows a standard logging policy.
*
* @author dandrews
*/
public interface IXmlLoggerFactory extends IService {
/* these categories need to be defined in PLLoggerCategory as well */
public enum Category { Loading, Runtime, XmlMarshal, XmlUnMarshal, Request }
/** This will get the logger for the specific type
*
* @param category the category needed
* @return the logger
*/
ILogger getLogger(Category category);
/** This will get the logger for the specific type
*
* @param category the category needed
* @return the logger
*/
ILogger getLogger(String category);
/** This will get the logger for any custom category, it will also initialize it to
* a console appender at warning level if not otherwise configured.
*
* @param category the category needed
* @param level the level to set this temporary logger to
* @return the logger
*/
public ILogger getTempLogger(String category, SystemOutLogger.LoggingLevel level);
}