All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.spy.memcached.compat.log.Log4JLogger Maven / Gradle / Ivy

// Copyright (c) 2002  Dustin Sallings 

package net.spy.memcached.compat.log;

/**
 * Logging implementation using
 * log4j.
 */
public class Log4JLogger extends AbstractLogger {

	// Can't really import this without confusion as there's another thing
	// by this name in here.
	private final org.apache.log4j.Logger l4jLogger;

	/**
	 * Get an instance of Log4JLogger.
	 */
	public Log4JLogger(String name) {
		super(name);

		// Get the log4j logger instance.
		l4jLogger=org.apache.log4j.Logger.getLogger(name);
	}

	/**
	 * True if the underlying logger would allow debug messages through.
	 */
	@Override
	public boolean isDebugEnabled() {
		return(l4jLogger.isDebugEnabled());
	}

	/**
	 * True if the underlying logger would allow info messages through.
	 */
	@Override
	public boolean isInfoEnabled() {
		return(l4jLogger.isInfoEnabled());
	}

	/**
	 * Wrapper around log4j.
	 *
	 * @param level net.spy.compat.log.AbstractLogger level.
	 * @param message object message
	 * @param e optional throwable
	 */
	@Override
	public void log(Level level, Object message, Throwable e) {
		org.apache.log4j.Level pLevel=org.apache.log4j.Level.DEBUG;

		switch(level == null ? Level.FATAL : level) {
			case DEBUG:
				pLevel=org.apache.log4j.Level.DEBUG;
				break;
			case INFO:
				pLevel=org.apache.log4j.Level.INFO;
				break;
			case WARN:
				pLevel=org.apache.log4j.Level.WARN;
				break;
			case ERROR:
				pLevel=org.apache.log4j.Level.ERROR;
				break;
			case FATAL:
				pLevel=org.apache.log4j.Level.FATAL;
				break;
			default:
				// I don't know what this is, so consider it fatal
				pLevel=org.apache.log4j.Level.FATAL;
				l4jLogger.log("net.spy.compat.log.AbstractLogger", pLevel,
					"Unhandled log level:  " + level
						+ " for the following message", null);
		}

		l4jLogger.log("net.spy.compat.log.AbstractLogger", pLevel, message, e);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy