/*
* Copyright 2006-2010 Daniel Henninger. All rights reserved.
*
* This software is published under the terms of the GNU Public License (GPL),
* a copy of which is included in this distribution.
*/
package net.sf.kraken.util;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.Priority;
import org.apache.log4j.spi.LoggingEvent;
import org.jivesoftware.util.Log;
/**
* This is a modified version of the standard appender that forced everything to go to the debug log.
* TODO: It's possible this could be done via config options but I can't tell.
* @author Guus der Kinderen, guus@nimbuzz.com
* @author Daniel Henninger
*/
public class DebugOnlyLog4JToOpenfireAppender extends AppenderSkeleton {
/*
* (non-Javadoc)
*
* @see org.apache.log4j.AppenderSkeleton#append(org.apache.log4j.spi.LoggingEvent)
*/
@Override
protected void append(LoggingEvent event)
{
final Level l = event.getLevel();
final String message = event.getMessage().toString();
Throwable throwable = null;
if (event.getThrowableInformation() != null)
{
throwable = event.getThrowableInformation().getThrowable();
}
switch (l.toInt())
{
case Priority.OFF_INT:
// Logging turned off - do nothing.
break;
case Priority.FATAL_INT:
case Priority.ERROR_INT:
Log.debug(message, throwable);
break;
case Priority.WARN_INT:
Log.debug(message, throwable);
break;
case Priority.INFO_INT:
Log.debug(message, throwable);
break;
default:
// DEBUG and below (trace, all)
Log.debug(message, throwable);
break;
}
}
/*
* (non-Javadoc)
*
* @see org.apache.log4j.AppenderSkeleton#close()
*/
//@Override
public void close()
{
// There's nothing here to close.
}
/*
* (non-Javadoc)
*
* @see org.apache.log4j.AppenderSkeleton#requiresLayout()
*/
//@Override
public boolean requiresLayout()
{
// we're doing this quick and dirty.
return false;
}
}