NutzCN Logo
问答 配置Logback输出行号 无法精准定位到错误行
发布于 2826天前 作者 qq_4ed4ff22 6597 次浏览 复制 上一个帖子 下一个帖子
标签:

我在查找输出日志时 根据日志提示 总是无法准确的找到报错类中的号数。
日志:
14:41:04.012 [main][DEBUG][io.netty.util.NetUtil:86]-> Loopback interface: lo (Software Loopback Interface 1, 127.0.0.1)
该输出准确应该是在NetUtil类中的第156行 而通过日志打印显示却是在86行
对应的输出格式:
%d{HH:mm:ss.SSS} [%t][%p][%logger:%line]-> %msg%n

后来我通过配置发现这个行号是来自于Slf4JLogger的第86行
14:44:29.275 [main][DEBUG][io.netty.util.NetUtil:86 at io.netty.util.internal.logging.Slf4JLogger.debug(Slf4JLogger.java:86)
]-> Loopback interface: lo (Software Loopback Interface 1, 127.0.0.1)
对应的输出格式:
%d{HH:mm:ss.SSS} [%t][%p][%logger:%line%caller{1}]-> %msg%n
所以希望解答一下 到底是我日志配置有问题 还是如何?

5 回复

单纯行号是不行的,无论是eclipse还是idea,都是认下面这种

(MainSetup.java:30)

括号,文件名,行号,缺一不可


[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger %caller{2} - %msg%n

可是我通过测试发现 如果我不使用Logs工具类 , 而是使用slf4j的LoggerFactory来打印的话 都是没有问题的

Logs.getLog(ServerLauncher.class).info("测试");
LoggerFactory.getLogger(ServerLauncher.class).info("测试");
这是我测试打印的两条日志 最终显示第二条行号是没有问题的 而第一条则显示的所对应的Logger配置类的行号

加log4j-over-slf4j

添加回复
请先登陆
回到顶部