package com.dianping.pigeon.log;
import com.dianping.pigeon.util.Constants;
import org.slf4j.spi.LocationAwareLogger;
public class Slf4jLogger implements Logger {
private org.slf4j.Logger logger;
public Slf4jLogger() {
this(Slf4jLogger.class.getName());
}
private boolean isLocationAware = false;
private static final String ADAPTER_FQCN = Slf4jLogger.class.getName();
public Slf4jLogger(String loggerName) {
this.logger = org.slf4j.LoggerFactory.getLogger(loggerName);
if (!Constants.ACCESS_LOG_NAME.equals(loggerName) && this.logger instanceof LocationAwareLogger) {
isLocationAware = true;
}
}
@Override
public void debug(Object message) {
debug(message.toString(), null);
}
@Override
public void debug(Object message, Throwable t) {
debug(message.toString(), t);
}
@Override
public void debug(String message) {
debug(message, null);
}
@Override
public void debug(String message, Throwable t) {
if (isLocationAware) {
((LocationAwareLogger)logger).log(null, ADAPTER_FQCN,
LocationAwareLogger.DEBUG_INT, message, null, t);
} else {
logger.debug(message, t);
}
}
@Override
public void error(Object message) {
error(message.toString(), null);
}
@Override
public void error(Object message, Throwable t) {
error(message.toString(), t);
}
@Override
public void error(String message) {
error(message, null);
}
@Override
public void error(String message, Throwable t) {
if (isLocationAware) {
((LocationAwareLogger)logger).log(null, ADAPTER_FQCN,
LocationAwareLogger.ERROR_INT, message, null, t);
} else {
logger.error(message, t);
}
}
@Override
public void info(String message) {
info(message, null);
}
@Override
public void info(String message, Throwable t) {
if (isLocationAware) {
((LocationAwareLogger)logger).log(null, ADAPTER_FQCN,
LocationAwareLogger.INFO_INT, message, null, t);
} else {
logger.info(message, t);
}
}
@Override
public void info(Object message) {
info(message.toString(), null);
}
@Override
public void info(Object message, Throwable t) {
info(message.toString(), t);
}
@Override
public void trace(Object message) {
trace(message.toString(), null);
}
@Override
public void trace(Object message, Throwable t) {
trace(message.toString(), t);
}
@Override
public void trace(String message) {
trace(message, null);
}
@Override
public void trace(String message, Throwable t) {
if (isLocationAware) {
((LocationAwareLogger)logger).log(null, ADAPTER_FQCN,
LocationAwareLogger.TRACE_INT, message, null, t);
} else {
logger.trace(message, t);
}
}
@Override
public void warn(Object message) {
warn(message.toString(), null);
}
@Override
public void warn(Object message, Throwable t) {
warn(message.toString(), t);
}
@Override
public void warn(String message) {
warn(message, null);
}
@Override
public void warn(String message, Throwable t) {
if (isLocationAware) {
((LocationAwareLogger)logger).log(null, ADAPTER_FQCN,
LocationAwareLogger.WARN_INT, message, null, t);
} else {
logger.warn(message, t);
}
}
@Override
public void fatal(Object message) {
error(message.toString(), null);
}
@Override
public void fatal(Object message, Throwable t) {
error(message.toString(), t);
}
@Override
public void fatal(String message) {
error(message, null);
}
@Override
public void fatal(String message, Throwable t) {
if (isLocationAware) {
((LocationAwareLogger)logger).log(null, ADAPTER_FQCN,
LocationAwareLogger.ERROR_INT, message, null, t);
} else {
logger.error(message, t);
}
}
@Override
public String getName() {
return logger.getName();
}
@Override
public boolean isDebugEnabled() {
return logger.isDebugEnabled();
}
@Override
public boolean isErrorEnabled() {
return logger.isErrorEnabled();
}
@Override
public boolean isFatalEnabled() {
return logger.isErrorEnabled();
}
@Override
public boolean isInfoEnabled() {
return logger.isInfoEnabled();
}
@Override
public boolean isTraceEnabled() {
return logger.isTraceEnabled();
}
@Override
public boolean isWarnEnabled() {
return logger.isWarnEnabled();
}
}