package voldemort.utils.logging; import org.apache.log4j.Logger; /** * A logger implementation which prepends a string to all of its logs. */ public class PrefixedLogger extends Logger { private static final String UNIQUE_NAME_PREFIX_SEPARATOR = "|"; private final String prefix; protected PrefixedLogger(String name, String prefix) { super(name); this.prefix = prefix; } public static Logger getLogger(String name, String prefix) { return Logger.getLogger(name + UNIQUE_NAME_PREFIX_SEPARATOR + prefix, new PrefixedLoggerFactory(prefix)); } private String generateMessage(Object message) { return prefix + " : " + message; } @Override public void error(Object message, Throwable throwable) { super.error(generateMessage(message), throwable); } @Override public void error(Object message) { super.error(generateMessage(message)); } @Override public void info(Object message, Throwable throwable) { super.info(generateMessage(message), throwable); } @Override public void info(Object message) { super.info(generateMessage(message)); } @Override public void warn(Object message, Throwable throwable) { super.warn(generateMessage(message), throwable); } @Override public void warn(Object message) { super.warn(generateMessage(message)); } @Override public void debug(Object message, Throwable throwable) { super.debug(generateMessage(message), throwable); } @Override public void debug(Object message) { super.debug(generateMessage(message)); } @Override public void trace(Object message, Throwable throwable) { super.trace(generateMessage(message), throwable); } @Override public void trace(Object message) { super.trace(generateMessage(message)); } @Override public void fatal(Object message, Throwable throwable) { super.fatal(generateMessage(message), throwable); } @Override public void fatal(Object message) { super.fatal(generateMessage(message)); } }