Skip to main content
 首页 » 编程设计

python之使用大量尝试...除了在 Django 中记录每个错误

2024年08月28日27傻小

我想检查代码的每一行或过程,如果不成功,则记录错误。像这样:

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 文件。这包括异常回溯和完整堆栈信息。