问题描述
由于某些变量要频繁打印,而我又不想每次都用logger.info函数来一个一个地打印这些变量,于是我用一个新的类封装了Logger,例如:publicstaticclassMyLogger{Loggerlogger=...publicstaticvoidinfo(Stringmsg,String...args){...}}但是运行MyLogger.info的时候打印出来的行号却是MyLogger类中的info函数的所在行的行号。我想打印出真实的行号,除了修改logback源码或者以下网址所说的直接对log4j的log函数进行封装的方法(http://www.coderli.com/log4j-slf4j-logger-linenumber/),还有没有什么更简单易行的方法?或者对于“某些变量要频繁打印”这种需求,有没有其他的办法?(不一定用logback)
解决方案
解决方案二:
抛出一个异常,取得调用函数中的行号,把异常给捕捉publicvoidfoo(){Exceptionex=newRuntimeException();StackTraceElementelement=ex.getStackTrace()[0];System.out.println(element.getLineNumber());}
时间: 2024-10-26 05:21:56