【发布时间】:2013-04-27 02:17:39
【问题描述】:
我目前正在维护一个拥有中小型用户群的桌面 Java 应用程序。我经常收到一些非常无用的邮件,说“出了点问题”,而我一直在挖掘源代码,经常无法重现问题。
现在我想知道是否有一个库可以让我在异常发生时收集异常,向用户显示一个小对话框,如果/当他们同意时,将堆栈跟踪发布到我的网络服务器。基本上,我正在寻找类似于 Application Crash Report for Android (ACRA) 的东西,但用于桌面 Java 应用程序。
【问题讨论】:
-
您可以通过在应用程序开始时调用
System.setErr(new java.io.PrintStream(new java.io.File(filename)));将其放入日志文件中。这会将System.err中的所有内容输出到文件中。 -
我会使用日志记录,使用 SLF4j 或 log4j 将错误存储在定义的日志文件中。但这只是我logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/…
-
@cdecker 你能给我们一个sscce 的代码,显示这些电子邮件是如何发送给你的吗?例如,您是否在记录器发送电子邮件时使用某种记录框架?
-
我们已经在使用 SLF4J 进行日志记录,但我还没有办法将日志和堆栈跟踪详细信息自动传送回我们的服务器,以便我们收集、确定优先级并修复原因。我需要的是一些可以从异常处理程序内部调用的库,以收集有关应用程序(版本、配置等)和正在处理的异常的信息,然后将其传递到我们的服务器。
标签: java exception-handling error-reporting