代码之家  ›  专栏  ›  技术社区  ›  dF.

如何最好地实现简单的崩溃/错误报告?

  •  8
  • dF.  · 技术社区  · 16 年前

    实现简单的崩溃/错误报告机制的最佳方法是什么?

    详细信息:我的应用程序是 跨平台(mac/windows/linux)和用python编写 ,所以我只需要发送少量文本的东西,例如时间戳和回溯(我已经生成并显示在我的错误对话框中)。

    如果它可以简单地通过电子邮件发送就可以了,但是我想不出一种方法来做到这一点,如果不在应用程序中包含SMTP服务器的用户名和密码… 我应该在服务器端实现一个简单的Web服务,并让我的应用程序向它发送一个包含信息的HTTP请求吗?有更好的主意吗?

    6 回复  |  直到 16 年前
        1
  •  5
  •   nsayer    16 年前

    Web服务是最好的方法,但是有一些警告:

    1. 您应该总是询问用户是否可以发送错误反馈信息。
    2. 如果出现网络错误,您应该准备好优雅地失败。不要让报告崩溃的失败阻碍恢复!
    3. 除非用户知道(请参见1),否则应避免包含用户标识或敏感信息,并且应使用SSL或以其他方式保护它。有些司法管辖区会给您带来您可能不想处理的负担,因此最好不要保存此类信息。
    4. 与任何Web服务一样,请确保您的服务不会被其他人利用。
        2
  •  3
  •   Jim os x nerd    16 年前

    如果不在应用程序中包含SMTP服务器的用户名和密码,我想不出一种方法来做到这一点…

    您只需要用户名和密码就可以向智能主机进行身份验证。您不需要它直接发送邮件,您需要它通过中继发送邮件,例如您的ISP的邮件服务器。完全有可能在没有身份验证的情况下发送电子邮件——这就是为什么垃圾邮件很难阻止的原因。

    尽管如此,一些ISP阻止了端口25上的出站流量,所以最可靠的替代方案是HTTP Post,它不太可能被任何东西阻塞。一定要选择一个你以后不会觉得受到限制的URL,或者更好的是,让应用程序定期检查更新,因此如果你决定更改域或其他内容,你可以提前推送更新。

    安全不是真正的问题。你可以很容易地丢弃垃圾数据,所以真正关心你的是是否有人会麻烦构建虚假的回溯来干扰你,这是一个非常不可能的情况。

    对于有效载荷, PyCrash 可以帮到你。

        3
  •  1
  •   pjz    16 年前

    点击网页是一种方式,但要确保你选择了一个好的网址-你的应用程序将在未来几年点击它。

        4
  •  1
  •   Allan Wind    16 年前
        5
  •  0
  •   Branan    16 年前

    无论您使用SMTP还是HTTP发送数据,您都需要在应用程序中有一个用户名/密码,以防止任何人向您发送随机数据。

    考虑到这一点,我怀疑使用SMTP而不是HTTP发送数据会更容易。

        6
  •  0
  •   Benjamin W. Smith    16 年前

    某种简单的Web服务就足够了。您必须考虑安全性,这样就不会只有任何人可以向您的服务提出请求。

    在更大的范围内,我们考虑使用JMS消息传递系统。将包含回溯/错误消息的数据的序列化对象放入队列,并每隔x分钟使用该对象,从该数据生成报告/警报。

    推荐文章