无法找到异常的来源以及异常是什么

时间:2016-12-26 04:47:57

标签: python linux python-3.x exception logging

我在cron定期运行的服务器上有一个python scraper。有时它会崩溃,但我无法弄清楚它崩溃的原因以及崩溃的原因,因为日志中没有任何与异常相关的内容:既没有提及错误,也没有堆栈跟踪。记录器以这种方式设置:

logging.basicConfig(filename="log.log", level=logging.INFO)

但是在异常的情况下,它必须记录到日志中,不是这样吗?

问题是,如何找到异常的来源。

2 个答案:

答案 0 :(得分:1)

用于记录崩溃信息的标准Python模块称为states。从本质上讲,您需要在最顶层安装一个catch-all异常处理程序,并调用traceback

logging.error(traceback.format_exc())

请注意,如果您使用的是在C / C ++中实现的Python扩展模块,并且此类模块内部存在崩溃(例如,分段错误),程序仍将以静默方式崩溃。没有简单的方法可以解决这个问题。

答案 1 :(得分:0)

你可以使用这样的东西来检查你得到的异常。

try:
   #the code which may throw exception
except Exception as e:
   #log the exception over here.