繁体   English   中英

Django 日志级别 - 仅收集警告 - 无信息

[英]Django log level - only WARNING up collected - no INFO

我正在运行 Django 应用程序并尝试从中收集日志。 我正在尝试从 INFO 收集所有内容,但是在日志文件中我只有警告。

我已将 settings.py 复制到一个基本测试 Django 站点,在该站点上,我的日志记录按照收集的 INFO 的预期工作。 问题肯定和我的Django app的配置有关。

请您指点我进行故障排除的任何途径。

以下变量是从 .env 文件中收集的 - LOG_MAX_SIZE、LOG_NUMBER_OF_FILES、LOG_LOCATION、LOG_LEVEL。

#LOGGING SETTINGS
LOG_MAX_SIZE = 52428800 #max size of single log file in bytes
LOG_NUMBER_OF_FILES = 5 #number of old log files
LOG_LOCATION = 'logs/rotatingLog.log' #default name and location of a log file
LOG_LEVEL = 'INFO' #Log level to be collected through all django loggers - options include: DEBUG, INFO, WARNING, ERROR, CRITICAL

settings.py 文件解压:

LOGGING = {
    'version': 1,  # the dictConfig format version
    'disable_existing_loggers': False,  # retain the default loggers

    'handlers': {
       'rotatingFile': {
            'class': 'logging.handlers.RotatingFileHandler',
            'formatter': 'verbose',
            'maxBytes': LOG_MAX_SIZE,
            'backupCount': LOG_NUMBER_OF_FILES,
            'filename': LOG_LOCATION,
        }
    },
    'loggers': {
        '': {
            'handlers': ['rotatingFile'],
            'level': LOG_LEVEL,
        },
        'root': {
            'handlers': ['rotatingFile'],
            'level': LOG_LEVEL,
        },
        'main': {
            'handlers': ['rotatingFile'],
            'propagate': False,
            'level': LOG_LEVEL,
        },
        'application': {
            'handlers': ['rotatingFile'],
            'propagate': False,
            'level': LOG_LEVEL,
        },
        'customer': {
            'handlers': ['rotatingFile'],
            'propagate': False,
            'level': LOG_LEVEL,
        },
        'chat': {
            'handlers': ['rotatingFile'],
            'propagate': False,
            'level': LOG_LEVEL,
        },
        'django': {
            'handlers': ['rotatingFile'],
            'propagate': False,
            'level': LOG_LEVEL,
        },
        'django.security.*': {
            'handlers': ['rotatingFile'],
            'propagate': False,
            'level': LOG_LEVEL,
        },
    },
    'formatters': {
        'verbose': {
            'format': '{asctime} {levelname} {name} {module} {process:d} {thread:d} {message}',
            'style': '{',
        },
    },

当我启动 Django 应用程序并向 URL 发出一些请求时,我没有记录任何信息日志 - 只有警告或错误。

经过一些调查,我注意到这可能是 Django 的有意行为。当我处于开发模式并使用开发服务器时,日志记录工作。 但是,当我切换到 Gunnicron 时,我只会收到状态 >400 的日志。 不幸的是,Django 文档没有提到这种行为。 因此,相反,在生产中,我这样调用 Gunnicorn,并且我正在获取所有状态日志:

gunicorn -w 4 PressRiver.wsgi -b 0.0.0.0:8000 --error-logfile /logs/gunicorn-error.log --access-logfile /logs/gunicorn-access.log

我认为下面的票可能会进一步解释。 https://code.djangoproject.com/ticket/33897

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM