当前位置: 首页 > 面试题库 >

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

任云瀚
2023-03-14
问题内容

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

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

问题是,这里的规则是 什么在哪里 定义?

编辑:logback模式布局代码段是 %msg \(%file:%line\)%n


问题答案:

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

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.IPatternMatchListenerDelegate通过extension
point 的实现org.eclipse.ui.console.consolePatternMatchListeners

org.eclipse.jdt.debug.ui插件中定义了为堆栈跟踪中的异常和行号提供超链接的贡献,插件中定义了实现类。

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



 类似资料:
  • 当Xdebug被激活时,只要PHP决定显示通知,警告,错误等,就会显示堆栈跟踪。堆栈跟踪显示的信息以及显示方式可以根据您的需要进行配置。 Xdebug在错误情况下显示的堆栈跟踪信息量相当保守(如果display.errors 在php.ini中设置为On)。这是因为大量的信息会减慢脚本的执行速度和浏览器中堆栈跟踪本身的渲染速度。但是,可以使堆栈轨迹以不同的设置显示更详细的信息。 堆栈跟踪中的变量

  • 我在Scala/Play2.2.0应用程序上使用Logback 1.0.13。现有配置如下所示:

  • 我使用以下代码打印try-catch块中发生的任何异常,但是当异常发生时,logback不会打印完整的堆栈跟踪,而是写入一行错误(它没有明确说明是什么导致了它。我如何在logback输出中打印完整的堆栈跟踪? 尝试捕获异常的catch块 日志返回错误输出:

  • 我正在使用Java Mission Control来配置我的应用程序。“Threads”选项卡中有用的度量之一是每个线程被阻塞的次数。然而,我似乎找不到一种方法来获取线程被阻塞在哪些代码行上。是否有一种方法--通过编程或通过JMC--来确定阻塞发生在哪里?

  • 问题内容: 我只想在程序中记录异常的前几行。我知道,我可以执行以下操作以仅打印stacktrace的前5行: 但我宁愿使用log4j(或更精确地说,是在log4j上使用slf4j)进行日志记录。有没有办法告诉log4j它应该只打印stacktrace的前5行? 问题答案: 您可以在log4j中使用EnhancedPatternLayout来格式化堆栈跟踪。 请参阅http://logging.ap

  • 问题内容: 如何将异常的堆栈跟踪信息打印到stderr以外的流上?我发现的一种方法是使用getStackTrace()并将整个列表打印到流中。 问题答案: 可以接受or或参数: 也就是说,请考虑将SLF4J之类的记录器接口与LOGBack或log4j之类的记录实现一起使用。