为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

12345678_0001 2022-11-24 14:53:57

当 Django 应用程序中发生任何异常时写入日志文件的最佳方法是什么,而无需对视图中的每个函数进行硬编码,即中间件?


例如,当在视图中出现 DatabaseError、ValueError、Integrity 错误时。


我需要一些可以在生产和开发中使用 DRY 概念的东西。


import logging


logger = logging.getLogger(__name__)


def my_view(request, arg1, arg):

    ...

    if bad_mojo:

        # Log an error message

        logger.error('Something went wrong!')


查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1567条经验 获得超6个赞

您可以使用日志。


这是一个触发WARNING和更重要级别的示例配置。


(取自 Django 3.0 文档)


这进入你的settings.py


LOGGING = {

    'version': 1,

    'disable_existing_loggers': False,

    'handlers': {

        'file': {

            'level': 'WARNING',

            'class': 'logging.FileHandler',

            'filename': '/path/to/django/debug.log',

        },

    },

    'loggers': {

        'django': {

            'handlers': ['file'],

            'level': 'WARNING',

            'propagate': True,

        },

    },

}

由于级别设置为WARNING,三种类型的级别将触发记录器,即WARNING,ERROR和CRITICAL。


此外,我们已经使用django(作为记录器)来利用 Django 的万能记录器。它将允许我们创建一个更具可读性的日志,因为错误将在日志文件中被正确分类(如模板、数据库等)。您可以在此处阅读有关它们的更多信息。


查看完整回答
反对 回复 2022-11-24

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信