package org.jboss.seam.log;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
final class Log4JProvider implements LogProvider
{
private final Logger logger;
private final boolean isWrapped;
private static final String LOG_IMPL_FQCN = LogImpl.class.getName();
private static final String LOG_PROVIDER_FQCN = Log4JProvider.class.getName();
private static final Level TRACE;
static
{
Object trace;
try
{
trace = Level.class.getDeclaredField("TRACE").get(null);
}
catch (Exception e)
{
trace = Level.DEBUG;
}
TRACE = (Level) trace;
}
Log4JProvider(String category, boolean wrapped)
{
logger = Logger.getLogger(category);
isWrapped = wrapped;
}
private String getFQCN()
{
return isWrapped ? LOG_IMPL_FQCN : LOG_PROVIDER_FQCN;
}
public void debug(Object object)
{
logger.log( getFQCN(), Level.DEBUG, object, null);
}
public void debug(Object object, Throwable t)
{
logger.log( getFQCN(), Level.DEBUG, object, t);
}
public void error(Object object)
{
logger.log( getFQCN(), Level.ERROR, object, null);
}
public void error(Object object, Throwable t)
{
logger.log( getFQCN(), Level.ERROR, object, t);
}
public void fatal(Object object)
{
logger.log( getFQCN(), Level.FATAL, object, null);
}
public void fatal(Object object, Throwable t)
{
logger.log( getFQCN(), Level.FATAL, object, t);
}
public void info(Object object)
{
logger.log( getFQCN(), Level.INFO, object, null);
}
public void info(Object object, Throwable t)
{
logger.log( getFQCN(), Level.INFO, object, t);
}
public boolean isDebugEnabled()
{
return logger.isEnabledFor(Level.DEBUG);
}
public boolean isErrorEnabled()
{
return logger.isEnabledFor(Level.ERROR);
}
public boolean isFatalEnabled()
{
return logger.isEnabledFor(Level.FATAL);
}
public boolean isInfoEnabled()
{
return logger.isEnabledFor(Level.INFO);
}
public boolean isTraceEnabled()
{
return logger.isEnabledFor(TRACE);
}
public boolean isWarnEnabled()
{
return logger.isEnabledFor(Level.WARN);
}
public void trace(Object object)
{
logger.log( getFQCN(), TRACE, object, null);
}
public void trace(Object object, Throwable t)
{
logger.log( getFQCN(), TRACE, object, t);
}
public void warn(Object object)
{
logger.log( getFQCN(), Level.WARN, object, null);
}
public void warn(Object object, Throwable t)
{
logger.log( getFQCN(), Level.WARN, object, t);
}
}