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

Python 如何最好地实现简单的崩溃/错误报告?,python,cross-platform,qa,error-reporting,Python,Cross Platform,Qa,Error Reporting,实现简单的崩溃/错误报告机制的最佳方式是什么 详细信息:我的应用程序是跨平台(mac/windows/linux)的,并且是用Python编写的,所以我只需要一些可以发送少量文本的东西,例如,只需要一个时间戳和一个回溯(我已经生成并显示在错误对话框中) 如果它可以简单地通过电子邮件发送就可以了,但我想不出一种方法来做到这一点,而不在应用程序中包含smtp服务器的用户名和密码。。。 我应该在服务器端实现一个简单的web服务,并让我的应用程序向它发送一个包含信息的HTTP请求吗?有更好的主意吗?网络

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

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

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

网络热门是一条路要走,但请确保你选择了一个好的URL——你的应用程序将在未来几年中大受欢迎

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


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

web服务是最好的方式,但有一些注意事项:

  • 您应该始终询问用户是否可以发送错误反馈信息
  • 如果出现网络错误,您应该做好失败的准备。不要让未能报告崩溃阻碍恢复
  • 除非用户知道(请参见#1),否则应避免包含用户标识或敏感信息,并且应使用SSL或以其他方式保护它。有些管辖区会给您带来您可能不想处理的负担,因此最好不要保存此类信息
  • 与任何web服务一样,确保您的服务不被不法分子利用

  • 某种简单的web服务就足够了。你必须考虑安全性,而不是任何人都可以向你的服务提出请求。 在更大的范围内,我们考虑了JMS消息传递系统。将包含回溯/错误消息的序列化数据对象放入队列,并每x分钟使用一次,从该数据生成报告/警报

    如果不在应用程序中包含smtp服务器的用户名和密码,我想不出执行此操作的方法

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

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

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


    至于有效负载,我们可以帮助您。

    您是否提出了一个愿意共享的实现,特别是在服务器端?干杯