python faulthandler,记录到文本文件和多实例

时间:2014-05-15 12:57:49

标签: python file-io multiple-instances

我正在开发一个PyQt应用程序,因此很可能会发生段错误。

我想使用faulthandler模块来捕捉这些。现在不是写给stderr而是想做以下事情:

  • 使faulthandler写入具有已知位置的文件。
  • 再次启动时(正常或崩溃后),检查该文件是否存在并且其中包含崩溃日志。
  • 如果是,请打开一个对话框,要求用户使用崩溃日志打开错误报告,然后将其删除。

现在这个工作正常,除非我运行我的应用程序的多个实例。

然后我想我可以写入一个具有已知位置的随机文件(比如crash-XXXXX.log),然后在开始检查crash-*.log时,如果它是非空的那么做同样的事情上方。

然而,当这样做时,至少在Linux上我将能够删除该文件,而另一个实例可能仍然打开它,然后如果该实例崩溃,则日志会丢失。

我也不能在正确的时间open()文件,因为faulthandler想要一个打开的文件。

我正在寻找一个解决方案:

  • 适用于多个实例
  • 正确捕获所有这些实例的崩溃
  • 在一次崩溃后启动新实例时,仅打开崩溃对话框一次。
  • 关闭所有实例后,不会留下任何陈旧文件。
  • 至少在Linux和Windows上运行

我考虑过一些不同的方法,但它们都有这些缺点之一。

0 个答案:

没有答案