如何记录Python崩溃?

ala*_*usi 5 python

我在覆盆子Pi中运行python代码.代码应该永远持续下去.然而,几个小时后它崩溃了.由于它在远程计算机上运行,​​因此无法在崩溃期间看到它给出的消息.

如何将此消息存储在文件中,以便我可以看到问题是什么?这是在linux中自动完成的吗?或者我应该写一些函数来在崩溃期间导出错误.我怎样才能做到这一点?

kas*_*rnj 6

如果进程如下所示,您可以将输出存储在文件中:

python script.py >> /logdir/script.py.log 2>&1
Run Code Online (Sandbox Code Playgroud)

  • @alandalusi使用``tail -f/logdir/script.py.log``来查看日志. (2认同)

Ahm*_*med 5

您可以拥有一个主要功能,并在主要功能崩溃时登录

def main():
   ...
   raise ValueError("crashed because I'm a bad exception")
   ...

if __name__ == "__main__":
   try:
      main()
   except Exception as e:
      logger.exception("main crashed. Error: %s", e)
Run Code Online (Sandbox Code Playgroud)

如果您使用的是logstash之类的东西,并且想在UI上查看错误和时间,这会更好。

感谢Eric改善了答案

  • 使用logger.exception('main crashed')`,它也会打印堆栈跟踪 (2认同)