python - Django 日志记录请求

标签 python django logging

我在 aws elastic beanstalk 中使用 django 1.11,我一直在尝试让我的应用程序登录,但没有成功。 . .

我的 settings.py 中有这些

LOGGING_CONFIG = None
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/opt/python/current/app/staging.log',
        },
    },
    'loggers': {
        '': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django.request': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
import logging.config
logging.config.dictConfig(LOGGING)

然后我尝试调用我的 API 之一并期望日志中会出现一些内容,但它没有。我的 django.request 记录器应该自动记录所有传入的请求,还是我必须创建一个执行 logger.debug('something') 的中间件?

登录django比我想象的要复杂得多:(

最佳答案

Django 记录器扩展在开发和生产中的工作方式不同 (settings.DEBUG=True|False)。

您希望看到的 - http 请求日志 - 由 django.server 记录器编写,
仅在开发服务器(runserver 命令)中处于事件状态。

我看到在您的配置中您使用了 django.request 记录器。这个记录器的名字非常令人困惑——因为正如它的名字所暗示的——用户会期望它记录所有的 http 请求——但它不会。

django.request 将仅记录 4xx 和 5xx 请求。

我做了一个 screencast其中详细解释了这个问题。

Django documentation about loggers.

关于python - Django 日志记录请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45972977/

相关文章:

python - 检测pandas数据帧列中的时间差是否为负

django - 导入错误 : No module named django

java - 如何增加 android Log 类的控制台输出

reactjs - 在 ReactJs 中将警告视为错误

logging - 更改 WandB 日志记录目录

python - 如何在不使用键名的情况下确保 Google App Engine 中对象的数据完整性?

python - or-tool python 中的变量除法

python - 如何在Python中复制或删除有条件的行

python - 根据请求动态选择数据库

django - 没有权限在docker中访问此服务器(apache2)上的/