django - 如果 DEBUG 为 True,也启用 Django 日志记录

标签 django django-settings

通过阅读官方 django 文档,我对它了解不多。
https://docs.djangoproject.com/en/dev/topics/logging/#configuring-logging

如果 ,我也想启用日志记录调试 在 settings.py 中设置为 .
我希望将错误记录在文件中。

怎么做?

这些是我现在拥有的用于日志记录的默认 Django 设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

PS:
我在我的开发环境中使用 Apache + mod_wsgi,因为我使用的是我在 LAN 上远程访问的开发机器,这意味着我没有使用 django 开发服务器,我看不到控制台日志消息。

最佳答案

除非您已将其设置为,否则在任一 Debug模式下默认情况下都不会禁用 Django 日志记录。

将下面添加到您的 handlers LOGGING 的一部分

'file':
        {
            'level':
                'INFO',
            'class':
                'logging.FileHandler',
            'formatter':
                'verbose',
            'filename':
                'myapp.log'

        }

它将登录到 myapp.log项目根目录中的文件。您可以指定完整路径。

并将格式化程序字段添加到 Logging dict
'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format':
                '%(levelname)s %(message)s'
        },
    },

关于django - 如果 DEBUG 为 True,也启用 Django 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12841189/

相关文章:

django STATICFILES_DIRS 设置不应包含 STATIC_ROOT 设置

python - 模型使用时覆盖 Django 中的设置

Django Gevent 集成

python - Django 模型翻译 slug 问题。当我更改语言时,不要转到正确的网址

python - Django KeyError {% if in %}

python - django模型默认=""和 "This field cannot be blank"

python - Django MessageMiddleware 失败

python - 在 django 中使用 python unittest 运行特定的测试用例

django - 带有 Sencha Touch 和 Django 后端的移动应用程序

python - Django - 来自应用程序目录的静态文件