Warum ist mein gunicorn-Prozess ignoriert das log-level-Einstellung mit Django?

Habe ich Nginx, Gunicorn, und Django laufen alle auf der gleichen Ubuntu-EC2-Instanz. Ich habe eine ziemlich konventionelle Einrichtung und möchten, melden sich alle gunicorn Fehler auf eine bestimmte Datei.

Meine Konfiguration für Gunicorn ist:

#!/bin/bash

NAME="server"
GUNICORNDIR=/ebs/env/bin
DJANGODIR=/ebs/server/
SOCKFILE=/tmp/gunicorn.sock
LOGFILE=/var/log/gunicorn/gunicorn.error
USER=ubuntu
GROUP=ubuntu
NUM_WORKERS=5
TIMEOUT=60
DJANGO_SETTINGS_MODULE=settings
DJANGO_WSGI_MODULE=wsgi

echo "Starting $NAME"

RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

exec $GUNICORNDIR/gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $NUM_WORKERS \
  --timeout=$TIMEOUT \
  --user=$USER --group=$GROUP \
  --log-level=error --log-file=$LOGFILE \
  --bind=unix:$SOCKFILE

Jedoch mit dieser Konfiguration erhalte ich alle logs aus dem DEBUG und oben in die Datei geschrieben. Mein log-level-parameter angezeigt wird, werden immer ignoriert.

Was ich Suche, ist nur diese Arten von log-Nachrichten geschrieben:

2014-01-02 13:54:53 [3327] [CRITICAL] WORKER TIMEOUT (pid:3338)
2014-01-02 13:54:53 [3327] [CRITICAL] WORKER TIMEOUT (pid:3338)

Dachte ich, dass die Django-logging config angegeben in meinem settings.py stören könnte, also ich habe ein hf und ein Datenlogger, um zu versuchen und Ziel gunicorn aber das hat nicht funktioniert.

'handlers': {
'gunicorn': {
    'level': 'ERROR',
    'class': 'logging.handlers.RotatingFileHandler',
    'formatter': 'verbose',
    'filename': '/ebs/log/gunicorn.error',
    'maxBytes': 1024 * 1024 * 100,
},
}
'loggers': {
'gunicorn.errors': {
'level': 'ERROR',
'handlers': ['gunicorn'],
'propagate': False,
},

Hier sind die Versionen, die ich verwende

Django 1.5.4
Nginx nginx/1.1.19
Gunicorn 18.0

Irgendwelche Gedanken auf, was ist hier falsch?

** Update **

Hier ist, was mein django logging config sieht wie folgt aus:

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
    'level': 'WARNING',
    'handlers': ['sentry'],
},
'formatters': {
    'verbose': {
        'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
    },
    'simple': {
        'format': '%(levelname)s %(asctime)s -- %(message)s'
    }
},
'handlers': {
    'sentry': {
        'level': 'ERROR',
        'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
    },
    'sentry_file': {
        'level': 'ERROR',
        'class': 'logging.handlers.RotatingFileHandler',
        'formatter': 'verbose',
        'filename': '/ebs/log/sentry_log.txt',
        'maxBytes': 1024 * 1024 * 100,  # 100 mb
    },
    'celery': {
        'level': 'DEBUG',
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': '/ebs/log/celery/celery.log',
        'formatter': 'verbose',
        'maxBytes': 1024 * 1024 * 100,
    },
    'apps': {
        'level': 'DEBUG',
        'class': 'logging.handlers.RotatingFileHandler',
        'formatter': 'verbose',
        'filename': '/ebs/log/apps.log',
        'maxBytes': 1024 * 1024 * 100,
    },
    'apps.dss': {
        'level': 'DEBUG',
        'class': 'logging.handlers.RotatingFileHandler',
        'formatter': 'verbose',
        'filename': '/ebs/log/dss_apps.log',
        'maxBytes': 1024 * 1024 * 100,
    },

},
'loggers': {
    'django.db.backends': {
        'level': 'DEBUG',
        'handlers': ['sentry'],
        'propagate': False,
    },
    'sentry': {
        'level': 'DEBUG',
        'handlers': ['sentry'],
        'propagate': False,
    },
    'sentry.errors': {
        'level': 'ERROR',
        'handlers': ['sentry_file', 'sentry'],
        'propagate': False,
    },
    'celery': {
        'level': 'INFO',
        'handlers': ['sentry', 'celery'],
        'propagate': False
    },
    'apps': {
        'level': 'DEBUG',
        'handlers': ['apps', 'sentry'],
        'propagate': False
    },
    'apps.dss' : {
        'level': 'DEBUG',
        'handlers': ['apps.dss', 'sentry'],
        'propagate': False,
    },
},
}
  • Erhalten Sie gunicorn DEBUG-Meldungen im log, oder die von Django?
  • Die DEBUG-Meldungen in der Datei kommen von Django.
  • Poste bitte die vollständige django logging-Konfiguration, da könnte das problem sein
InformationsquelleAutor Dana Ford | 2014-01-02
Schreibe einen Kommentar