@
Muninn 你没有明白我的意思。
1, 如果是整个程序挂掉了,logging最后是默认在工作的,也就是一般情况下,你自己运行一个py文件,然后报错的输出。这个原理跟重写一个sys.excepthook是一样的。
2,如果是以daemon运行,那么你需要的是让err logging最终保留到一个日志中。也就是你要把stderr从屏幕打印转为文件保存。建议试试supervisor,里面有redirect_stderr与stdout_logfile可以进行配置。
3,如果只是想极简单的处理这个问题,自己写个函数,处理错误的信息(即保存到某个文本中),赋值给sys.excepthook就可以了。
- - - -
“我感觉程序崩溃了直接根据异常查错误就完了,捕获了再退出岂不是多此一举?”
触发的错误,即使是同一种错误,但是触发点(运行时的错误点)在不同文件中,那么收集到的错误信息也是不一样的,包括所在代码行,当前运行的上下文环境等。你可能会遇到很多基本就无法重现的问题,(多数是Web环境,或者其它非独自使用的程序)。呃,因为,我感觉可能是自己水平所限,无法解释清楚了。所以,我说,你再想想?