我为sl4j创建了一个包装器类,如下所示:
public class LogManager {
private Logger logger;
public LogManager(String className){
logger = LoggerFactory.getLogger(className);
}
public LogManager( Class<?> clazz )
{
logger = LoggerFactory.getLogger(clazz);
}
public void error(Exception var1, String var2, Object[] var3) {
logger.error(String.format(var2, var3), var1);
}
public void error(Exception var1) {
logger.error(var1.getMessage(), var1);
}
public void error(String var1) {
logger.error(var1);
}
public void info(Exception var1, String var2, Object[] var3) {
logger.info(String.format(var2, var3), var1);
}
public void trace(String var1) {
logger.trace(var1);
}
public void debug(Exception var1, String var2, Object[] var3) {
logger.debug(String.format(var2, var3), var1);
}
public void debug(String var1) {
logger.debug(var1);
}
public void warn(String var1, Object[] var2) {
logger.warn(String.format(var1, var2));
}
public void enterMethod(String var1, Object... var2) {
StackTraceElement[] var3 = Thread.currentThread().getStackTrace();
logger.debug("Enter Method " + var3[3].getClassName() + "." + var3[3].getMethodName());
debug(var1, var2);
}
}
除了它的包装类的记录行号而不是包装器被调用的源类的事实以外,其他都很好。我正在像这样的源类中创建包装类的对象:
private LogManager logger = new LogManager(this.getClass());
即使类名在日志中也很好。有人可以帮忙吗?