Eclipse 控制台 - 使堆栈跟踪可单击的规则是什么?

2022-09-04 21:30:53

我记录了很多东西,并注意到Eclipse Console使Java堆栈跟踪可点击。异常将突出显示(转到“创建断点”对话框),文件名 + 数字也会突出显示(允许直接转到该行)。

我想知道我是否可以格式化我的正常日志行,以便Eclipse控制台对它们做同样的事情。一种可能的方法可能是使它们看起来像堆栈跟踪线,但是为了保留尽可能多的信息,我想知道Eclipse用于检测这些线的确切规则,但是Eclipse 3.6.2相当大,所以这是一项艰巨的任务。

那么问题来了,这里有哪些规则在起作用,它们在哪里定义?


编辑:日志备份模式布局代码段是%msg \(%file:%line\)%n


答案 1

此代码段可能会有所帮助。它可以放置在代码中的任何位置,并将在 eclipse 控制台上打印一个“可单击”行:

StackTraceElement s = Thread.currentThread().getStackTrace()[1];
System.out.printf("%s.%s(%s:%s)%n", s.getClassName(), s.getMethodName(),
            s.getFileName(), s.getLineNumber());

更新:

这个问题有一个答案,可能包括你的问题的解决方案:

Eclipse 控制台:检测警告和错误模式并使其可点击


现在我们开始:我们必须贡献一个 通过扩展点 的实现。org.eclipse.ui.console.IPatternMatchListenerDelegateorg.eclipse.ui.console.consolePatternMatchListeners

为堆栈跟踪中的异常和行号提供超链接的贡献在插件中定义,实现类位于同一捆绑包中。org.eclipse.jdt.debug.ui

这些规则是正则表达式,可以在贡献插件中找到。plugin.xml


答案 2

如果你打印,Eclipse 会将其转换为链接。(filename:lineNumber)

例:

System.out.println("message (Hello.java:2)");

我不知道是否有其他规则,也不知道它们在哪里定义。


推荐