在 Java 应用程序中收集异常报告

Collect exception reports in Java application

提问人:cdecker 提问时间:5/3/2013 最后编辑:Sam Harwellcdecker 更新时间:8/8/2016 访问量:1428

问:

我目前正在维护一个具有中小型用户群的桌面 Java 应用程序。我经常收到一些非常无用的邮件,说“出了点问题”,我不得不挖掘源代码,经常无法重现问题。

现在我想知道是否有一个库可以让我在异常发生时收集异常,向用户显示一个小对话框,如果/当他们同意时,将堆栈跟踪发布到我的 Web 服务器。基本上,我正在寻找类似于 Android 应用程序崩溃报告 (ACRA) 的东西,但适用于桌面 Java 应用程序。

Java 异常 错误报告

评论

0赞 Andre 5/3/2013
你试过这个吗?stackoverflow.com/questions/1312851/......
0赞 gparyani 5/3/2013
您可以通过在应用程序开始时调用来将其放入日志文件中。这会将所有内容输出到文件中。System.setErr(new java.io.PrintStream(new java.io.File(filename)));System.err
0赞 user2280897 5/3/2013
我会使用日志记录,使用 SLF4j 或 log4j 将错误存储在定义的日志文件中。但这只是我 logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/......
0赞 durron597 5/3/2013
@cdecker 您能否给我们一个代码的 sscce,说明这些电子邮件是如何发送给您的?例如,您是否使用某种日志记录框架来记录记录器发送电子邮件?
0赞 cdecker 5/3/2013
我们已经在使用 SLF4J 进行日志记录,但我还没有办法自动将日志和堆栈跟踪详细信息传送回我们的服务器,我们希望在服务器中收集、确定优先级并修复原因。我需要的是一些可以从异常处理程序内部调用的库,以收集有关应用程序(版本、配置等)和正在处理的异常的信息,然后将其传送到我们的服务器。

答:

2赞 Andreas Sewe 8/8/2016 #1

如果您使用的是 SLF4J 和 Logback,则可以配置 appender 以将详细的错误报告发送到 Ctrlflow 自动错误报告服务器(该服务器提供传入报告 + 仪表板 + 电子邮件摘要的过滤和聚合)。这篇博文包含有关如何相应地配置 Logback 的所有信息。

但是,如果要首先向用户显示确认对话框,则可能需要扩展现有的 appender,除非您的“桌面 Java 应用程序”是“Eclipse 富客户端平台应用程序”。在这种情况下,工作已经为您完成。有关详细信息,请参阅此网络研讨会