我有一个 python 脚本,它每 10 分钟向我发送一封电子邮件,其中包含控制台中编写的所有内容。我在我的 ubuntu 18.04 vps 中使用 crontab 运行它。有时它不发送邮件所以我假设当错误发生时执行停止但我怎样才能将错误写入 txt 文件以便我可以分析错误?
原文由 strangethingspy 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 python 脚本,它每 10 分钟向我发送一封电子邮件,其中包含控制台中编写的所有内容。我在我的 ubuntu 18.04 vps 中使用 crontab 运行它。有时它不发送邮件所以我假设当错误发生时执行停止但我怎样才能将错误写入 txt 文件以便我可以分析错误?
原文由 strangethingspy 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以按照评论中的建议使用 logging
模块(可能更好,但超出我的知识范围),或者使用 try
和 except
like 捕获错误:
try:
pass
#run the code you currently have
except Exception as e: # catch ALLLLLL errors!!!
print(e) # or more likely you'd want something like "email_to_me(e)"
尽管通常不赞成捕获 所有 异常,因为如果您的程序由于 任何 原因而失败,它将在 except
子句中被吞噬,因此更好的方法是找出您遇到的特定错误 IndexError
然后只捕获这个特定的错误,如:
try:
pass
#run the code you currently have
except IndexError as e: # catch only indexing errors!!!
print(e) # or more likely you'd want something like "email_to_me(e)"
原文由 Reedinationer 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
记录模块
为了演示
logging
模块的方法,这将是通用方法如果我
cat file_dir.txt
打印到文件
正如我在评论中指出的那样,您 也可以 使用
print
来完成此操作(我不确定您是否会为此鼓掌)cat my_errors.txt
请注意
logging.exception
在这种情况下 包括 回溯,这是该模块的众多巨大好处之一编辑
为了完整起见,
traceback
模块利用与print
类似的方法,您可以在其中提供文件句柄:这将包括您想要的所有信息
logging