net.spy.memcached.compat.log.AbstractLogger Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticache-java-cluster-client Show documentation
Show all versions of elasticache-java-cluster-client Show documentation
Amazon ElastiCache Cluster Client is an enhanced Java library to connect to ElastiCache clusters. This client library has been built upon Spymemcached and is released under the Amazon Software License.
/**
* Copyright (C) 2006-2009 Dustin Sallings
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALING
* IN THE SOFTWARE.
*/
package net.spy.memcached.compat.log;
/**
* Abstract implementation of Logger providing most of the common framework.
*/
public abstract class AbstractLogger implements Logger {
private final String name;
/**
* Instantiate the abstract logger.
*/
protected AbstractLogger(String nm) {
super();
if (nm == null) {
throw new NullPointerException("Logger name may not be null.");
}
name = nm;
}
/**
* Get the name of this logger.
*/
public String getName() {
return (name);
}
/**
* Get the throwable from the last element of this array if it is Throwable,
* else null.
*/
public Throwable getThrowable(Object[] args) {
Throwable rv = null;
if (args.length > 0) {
if (args[args.length - 1] instanceof Throwable) {
rv = (Throwable) args[args.length - 1];
}
}
return rv;
}
/**
* True if debug is enabled for this logger. Default implementation always
* returns false
*
* @return true if debug messages would be displayed
*/
public abstract boolean isDebugEnabled();
/**
* True if debug is enabled for this logger. Default implementation always
* returns false
*
* @return true if info messages would be displayed
*/
public abstract boolean isInfoEnabled();
/**
* Log a message at debug level.
*
* @param message the message to log
* @param exception the exception that caused the message to be generated
*/
public void debug(Object message, Throwable exception) {
log(Level.DEBUG, message, exception);
}
/**
* Log a formatted message at debug level.
*
* @param message the message to log
* @param args the arguments for that message
*/
public void debug(String message, Object... args) {
if (isDebugEnabled()) {
debug(String.format(message, args), getThrowable(args));
}
}
/**
* Log a message at debug level.
*
* @param message the message to log
*/
public void debug(Object message) {
debug(message, null);
}
/**
* Log a message at info level.
*
* @param message the message to log
* @param exception the exception that caused the message to be generated
*/
public void info(Object message, Throwable exception) {
log(Level.INFO, message, exception);
}
/**
* Log a formatted message at info level.
*
* @param message the message to log
* @param args the arguments for that message
*/
public void info(String message, Object... args) {
if (isInfoEnabled()) {
info(String.format(message, args), getThrowable(args));
}
}
/**
* Log a message at info level.
*
* @param message the message to log
*/
public void info(Object message) {
info(message, null);
}
/**
* Log a message at warning level.
*
* @param message the message to log
* @param exception the exception that caused the message to be generated
*/
public void warn(Object message, Throwable exception) {
log(Level.WARN, message, exception);
}
/**
* Log a formatted message at debug level.
*
* @param message the message to log
* @param args the arguments for that message
*/
public void warn(String message, Object... args) {
warn(String.format(message, args), getThrowable(args));
}
/**
* Log a message at warning level.
*
* @param message the message to log
*/
public void warn(Object message) {
warn(message, null);
}
/**
* Log a message at error level.
*
* @param message the message to log
* @param exception the exception that caused the message to be generated
*/
public void error(Object message, Throwable exception) {
log(Level.ERROR, message, exception);
}
/**
* Log a formatted message at debug level.
*
* @param message the message to log
* @param args the arguments for that message
*/
public void error(String message, Object... args) {
error(String.format(message, args), getThrowable(args));
}
/**
* Log a message at error level.
*
* @param message the message to log
*/
public void error(Object message) {
error(message, null);
}
/**
* Log a message at fatal level.
*
* @param message the message to log
* @param exception the exception that caused the message to be generated
*/
public void fatal(Object message, Throwable exception) {
log(Level.FATAL, message, exception);
}
/**
* Log a formatted message at debug level.
*
* @param message the message to log
* @param args the arguments for that message
*/
public void fatal(String message, Object... args) {
fatal(String.format(message, args), getThrowable(args));
}
/**
* Log a message at fatal level.
*
* @param message the message to log
*/
public void fatal(Object message) {
fatal(message, null);
}
/**
* Log a message at the given level.
*
* @param level the level
* @param message the message
*/
public void log(Level level, Object message) {
log(level, message, null);
}
/**
* Subclasses should implement this method to determine what to do when a
* client wants to log at a particular level.
*
* @param level the level to log at (see the fields of this class)
* @param message the message to log
* @param e the exception that caused the message (or null)
*/
public abstract void log(Level level, Object message, Throwable e);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy