package com.bao.lc.site.s3.gui;
import javax.swing.JTextArea;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Appender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
import org.apache.log4j.spi.LoggingEvent;
public class TextAreaLog implements Log
{
private static Log log = LogFactory.getLog("TdClient.UI");
private static final String FQCN = TextAreaLog.class.getName();
private Appender appender = null;
private transient Logger logger = null;
public TextAreaLog(JTextArea textArea)
{
this.appender = new TextAreaAppender(textArea);
this.logger = Logger.getLogger(FQCN);
}
@Override
public boolean isDebugEnabled()
{
return log.isDebugEnabled();
}
@Override
public boolean isErrorEnabled()
{
return log.isErrorEnabled();
}
@Override
public boolean isFatalEnabled()
{
return log.isFatalEnabled();
}
@Override
public boolean isInfoEnabled()
{
return log.isInfoEnabled();
}
@Override
public boolean isTraceEnabled()
{
return log.isTraceEnabled();
}
@Override
public boolean isWarnEnabled()
{
return log.isWarnEnabled();
}
@Override
public void trace(Object message)
{
if(isTraceEnabled())
{
log(FQCN, Level.TRACE, message, null);
log.trace(message);
}
}
@Override
public void trace(Object message, Throwable t)
{
if(isTraceEnabled())
{
log(FQCN, Level.TRACE, message, t);
log.trace(message, t);
}
}
@Override
public void debug(Object message)
{
if(isDebugEnabled())
{
log(FQCN, Level.DEBUG, message, null);
log.debug(message);
}
}
@Override
public void debug(Object message, Throwable t)
{
if(isDebugEnabled())
{
log(FQCN, Level.DEBUG, message, t);
log.debug(message, t);
}
}
@Override
public void info(Object message)
{
if(isInfoEnabled())
{
log(FQCN, Level.INFO, message, null);
log.info(message);
}
}
@Override
public void info(Object message, Throwable t)
{
if(isInfoEnabled())
{
log(FQCN, Level.INFO, message, t);
log.info(message, t);
}
}
@Override
public void warn(Object message)
{
if(isWarnEnabled())
{
log(FQCN, Level.WARN, message, null);
log.warn(message);
}
}
@Override
public void warn(Object message, Throwable t)
{
if(isWarnEnabled())
{
log(FQCN, Level.WARN, message, t);
log.warn(message, t);
}
}
@Override
public void error(Object message)
{
if(isErrorEnabled())
{
log(FQCN, Level.ERROR, message, null);
log.error(message);
}
}
@Override
public void error(Object message, Throwable t)
{
if(isErrorEnabled())
{
log(FQCN, Level.ERROR, message, t);
log.error(message, t);
}
}
@Override
public void fatal(Object message)
{
if(isFatalEnabled())
{
log(FQCN, Level.FATAL, message, null);
log.fatal(message);
}
}
@Override
public void fatal(Object message, Throwable t)
{
if(isFatalEnabled())
{
log(FQCN, Level.FATAL, message, t);
log.fatal(message, t);
}
}
public void log(String callerFQCN, Priority level, Object message, Throwable t)
{
LoggingEvent event = new LoggingEvent(callerFQCN, logger, level, message, t);
appender.doAppend(event);
}
}