sl4j记录器的包装器类记录包装器类的行号

时间:2018-07-23 03:16:58

标签: logging wrapper slf4j

我为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());

即使类名在日志中也很好。有人可以帮忙吗?

0 个答案:

没有答案