Allowed LoggingHandler to log in a different level

This commit is contained in:
Trustin Lee 2009-06-19 09:38:34 +00:00
parent 40ce919488
commit a902cbf970

View File

@ -33,6 +33,7 @@ import org.jboss.netty.channel.ChannelPipelineCoverage;
import org.jboss.netty.channel.ChannelUpstreamHandler; import org.jboss.netty.channel.ChannelUpstreamHandler;
import org.jboss.netty.channel.ExceptionEvent; import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.logging.InternalLogLevel;
import org.jboss.netty.logging.InternalLogger; import org.jboss.netty.logging.InternalLogger;
import org.jboss.netty.logging.InternalLoggerFactory; import org.jboss.netty.logging.InternalLoggerFactory;
@ -49,7 +50,10 @@ import org.jboss.netty.logging.InternalLoggerFactory;
@ChannelPipelineCoverage("all") @ChannelPipelineCoverage("all")
public class LoggingHandler implements ChannelUpstreamHandler, ChannelDownstreamHandler { public class LoggingHandler implements ChannelUpstreamHandler, ChannelDownstreamHandler {
private static final InternalLogLevel DEFAULT_LEVEL = InternalLogLevel.DEBUG;
private final InternalLogger logger; private final InternalLogger logger;
private final InternalLogLevel level;
private final boolean hexDump; private final boolean hexDump;
/** /**
@ -69,6 +73,7 @@ public class LoggingHandler implements ChannelUpstreamHandler, ChannelDownstream
*/ */
public LoggingHandler(boolean hexDump) { public LoggingHandler(boolean hexDump) {
logger = InternalLoggerFactory.getInstance(getClass()); logger = InternalLoggerFactory.getInstance(getClass());
level = DEFAULT_LEVEL;
this.hexDump = hexDump; this.hexDump = hexDump;
} }
@ -87,10 +92,25 @@ public class LoggingHandler implements ChannelUpstreamHandler, ChannelDownstream
* message is logged * message is logged
*/ */
public LoggingHandler(Class<?> clazz, boolean hexDump) { public LoggingHandler(Class<?> clazz, boolean hexDump) {
this(clazz, DEFAULT_LEVEL, hexDump);
}
/**
* Creates a new instance with the specified logger name.
*
* @param level the log level
* @param hexDump {@code true} if and only if the hex dump of the received
* message is logged
*/
public LoggingHandler(Class<?> clazz, InternalLogLevel level, boolean hexDump) {
if (clazz == null) { if (clazz == null) {
throw new NullPointerException("clazz"); throw new NullPointerException("clazz");
} }
if (level == null) {
throw new NullPointerException("level");
}
logger = InternalLoggerFactory.getInstance(clazz); logger = InternalLoggerFactory.getInstance(clazz);
this.level = level;
this.hexDump = hexDump; this.hexDump = hexDump;
} }
@ -109,10 +129,25 @@ public class LoggingHandler implements ChannelUpstreamHandler, ChannelDownstream
* message is logged * message is logged
*/ */
public LoggingHandler(String name, boolean hexDump) { public LoggingHandler(String name, boolean hexDump) {
this(name, DEFAULT_LEVEL, hexDump);
}
/**
* Creates a new instance with the specified logger name.
*
* @param level the log level
* @param hexDump {@code true} if and only if the hex dump of the received
* message is logged
*/
public LoggingHandler(String name, InternalLogLevel level, boolean hexDump) {
if (name == null) { if (name == null) {
throw new NullPointerException("name"); throw new NullPointerException("name");
} }
if (level == null) {
throw new NullPointerException("level");
}
logger = InternalLoggerFactory.getInstance(name); logger = InternalLoggerFactory.getInstance(name);
this.level = level;
this.hexDump = hexDump; this.hexDump = hexDump;
} }
@ -131,7 +166,7 @@ public class LoggingHandler implements ChannelUpstreamHandler, ChannelDownstream
* be logged together. * be logged together.
*/ */
public void log(ChannelEvent e) { public void log(ChannelEvent e) {
if (getLogger().isDebugEnabled()) { if (getLogger().isEnabled(level)) {
String msg = e.toString(); String msg = e.toString();
// Append hex dump if necessary. // Append hex dump if necessary.
@ -145,9 +180,9 @@ public class LoggingHandler implements ChannelUpstreamHandler, ChannelDownstream
// Log the message (and exception if available.) // Log the message (and exception if available.)
if (e instanceof ExceptionEvent) { if (e instanceof ExceptionEvent) {
getLogger().debug(msg, ((ExceptionEvent) e).getCause()); getLogger().log(level, msg, ((ExceptionEvent) e).getCause());
} else { } else {
getLogger().debug(msg); getLogger().log(level, msg);
} }
} }
} }