我想检查代码的每一行或过程,如果不成功,则记录错误。像这样:
try:
handle = open('file.txt', 'r+')
txt = handle.read()
except:
logger.info("SOME DESCRIPTION OF ERROR")
它有效,但似乎这个解决方案不是最好的方法。或者这是使用大量 try...except 语句的好方法吗?有替代方案吗?
请您参考如下方法:
首先。正如@Bakuriu 所说,您必须避免使用裸露的 except。
第二关。 Django(从 1.4 开始)带有为您配置的日志记录。
看看https://docs.djangoproject.com/en/dev/topics/logging/ .在生产环境中(即:DEBUG = False),它会捕获每个异常并通过电子邮件发送给您。如果您在 settings.py 中正确设置了 ADMIN 键。
例如,这个记录器:
LOGGING = {
'version': 1,
'formatters':{ 'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
},
'handlers': {
'error_file': {
'level': 'ERROR',
'class': 'logging.FileHandler',
'filename': 'errors.log',
'formatter': 'verbose'
},
},
'loggers': {
'django.request': {
'handlers': ['error_file'],
'level': 'INFO',
'propagate': False,
},
}
}
将记录所有级别为 ERROR 和更高级别的内容到项目根目录下的 error.log 文件。这包括异常回溯和完整堆栈信息。
