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

python faulthandler,记录到文本文件和多实例,python,file-io,multiple-instances,Python,File Io,Multiple Instances,我正在开发一个PyQt应用程序,所以很有可能发生故障 我想用模块来捕捉这些。现在,我不想写信给stderr,而是想做以下事情: 使faulthandler写入具有已知位置的文件 再次启动时(正常情况下或崩溃后),请检查该文件是否存在,以及其中是否有崩溃日志 如果是这样,请打开一个对话框,要求用户打开带有崩溃日志的bug报告,然后将其删除 现在,除了运行应用程序的多个实例外,这一切都很好 然后我想我可以写入一个具有已知位置的随机文件(比如,crash-XXXXX.log),然后在开始检查cra

我正在开发一个PyQt应用程序,所以很有可能发生故障

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

  • 使faulthandler写入具有已知位置的文件
  • 再次启动时(正常情况下或崩溃后),请检查该文件是否存在,以及其中是否有崩溃日志
  • 如果是这样,请打开一个对话框,要求用户打开带有崩溃日志的bug报告,然后将其删除
现在,除了运行应用程序的多个实例外,这一切都很好

然后我想我可以写入一个具有已知位置的随机文件(比如,
crash-XXXXX.log
),然后在开始检查
crash-*.log
,如果它不是空的,则执行与上面相同的操作

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

我也不能在正确的时间打开文件,因为faulthandler需要一个打开的文件

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

  • 可用于多个实例
  • 正确捕获所有这些实例的崩溃
  • 在一个实例崩溃后启动新实例时,仅打开一次崩溃对话框
  • 在关闭所有实例后不会留下任何过时的文件
  • 至少在Linux和Windows上工作
我考虑过一些不同的方法,但它们都有一个缺点