logback的Logger之上封装了一层,如何打印正确的行号?

酱油几时有 2015-02-03 12:33:31
由于某些变量要频繁打印,而我又不想每次都用logger.info函数来一个一个地打印这些变量,于是我用一个新的类封装了Logger,例如:

public static class MyLogger {

Logger logger = ...

public static void info (String msg, String... args) {

...

}

}

但是运行MyLogger.info的时候打印出来的行号却是MyLogger类中的info函数的所在行的行号。我想打印出真实的行号,除了修改logback源码或者以下网址所说的直接对log4j的log函数进行封装的方法(http://www.coderli.com/log4j-slf4j-logger-linenumber/),还有没有什么更简单易行的方法?



或者对于“某些变量要频繁打印”这种需求,有没有其他的办法?(不一定用logback)


...全文
1798 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
codeyjg 2021-07-20
  • 打赏
  • 举报
回复

这个怎么解决的兄弟

menghuanguaishou 2017-10-27
  • 打赏
  • 举报
回复
http://www.coderli.com/log4j-slf4j-logger-linenumber/ 这个已经是最好的方式了,要啥自行车
zhyu071010 2017-07-04
  • 打赏
  • 举报
回复
我也遇到这个问题了,大神们!这个是怎么处理的?
nicepainkiller 2016-12-13
  • 打赏
  • 举报
回复
我也遇到这个问题了, 我把它封装了之后,他就只显示封装地方的行号了? 这个问题解决了吗
Inhibitory 2015-02-03
  • 打赏
  • 举报
回复
抛出一个异常,取得调用函数中的行号,把异常给捕捉 public void foo() { Exception ex = new RuntimeException(); StackTraceElement element = ex.getStackTrace()[0]; System.out.println(element.getLineNumber()); }

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧