Python 在Django中引发异常时,写入日志文件的最佳方式是什么?

Python 在Django中引发异常时,写入日志文件的最佳方式是什么?,python,django,Python,Django,当Django应用程序中发生任何异常时,如果不对视图中的每个函数(即中间件)进行硬编码,写入日志文件的最佳方式是什么 例如,当视图中出现DatabaseError、ValueError、Integrity error时 我需要的东西,可以用于生产和开发与干燥的概念 import logging logger = logging.getLogger(__name__) def my_view(request, arg1, arg): ... if bad_mojo:

当Django应用程序中发生任何异常时,如果不对视图中的每个函数(即中间件)进行硬编码,写入日志文件的最佳方式是什么

例如,当视图中出现DatabaseError、ValueError、Integrity error时

我需要的东西,可以用于生产和开发与干燥的概念

import logging

logger = logging.getLogger(__name__)

def my_view(request, arg1, arg):
    ...
    if bad_mojo:
        # Log an error message
        logger.error('Something went wrong!')
你可以用

下面是一个在
警告
和更重要级别触发的示例配置

(摘自Django 3.0文档)

这将进入您的
设置.py

日志记录={
“版本”:1,
“禁用现有日志记录器”:False,
“处理程序”:{
“文件”:{
“级别”:“警告”,
'class':'logging.FileHandler',
'filename':'/path/to/django/debug.log',
},
},
“伐木工人”:{
“django”:{
“处理程序”:[“文件”],
“级别”:“警告”,
"传播":对,,
},
},
}
当级别设置为
警告
,三种类型的级别将触发记录器,即
警告
错误
严重


此外,我们还使用了
django
(作为记录器)来利用django的catch-all记录器。它将允许我们创建更可读的日志,因为错误将在日志文件中正确分类(如模板、数据库等)。您可以在上面阅读更多关于它们的信息。

这是否回答了您的问题?不,建议的答案不适用于生产。而且它不是动态错误处理程序。关于这个:是的,它有帮助!一个问题:我可以通过多个记录器吗?我希望在
错误
警告
我为您的问题(以及评论中的问题)编写了详细答案时触发:D