Pourquoi mon gunicorn processus en ignorant le journal de réglage de niveau avec Django?

J'ai Nginx, Gunicorn, et Django, le tout fonctionnant sur le même Ubuntu instance EC2. J'ai un assez classiques de l'installation et que vous souhaitez vous connecter tous gunicorn les erreurs dans un fichier particulier.

Ma configuration pour Gunicorn est:

#!/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

Cependant, avec cette configuration, j'obtiens tous les journaux de DÉBOGAGE et au-dessus écrites dans le fichier. Mon journal de paramètre de niveau semble être ignoré.

Ce que je suis à la recherche est de seulement ces types de messages de journal écrit:

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

Je pensais que le Django de journalisation config spécifié dans mon settings.py peut-être interférer j'ai donc ajouté un gestionnaire et un enregistreur de frappe pour essayer et cible gunicorn mais cela ne fonctionne pas.

'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,
},

Voici les versions que je suis en cours d'exécution

Django 1.5.4
Nginx nginx/1.1.19
Gunicorn 18.0

Des pensées sur ce qui est le problème ici?

** Mise à jour **

Voici ce que mon django journalisation config ressemble:

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,
},
},
}
Obtenez-vous gunicorn messages de DÉBOGAGE dans le journal, ou ceux de Django?
Les messages de DÉBOGAGE dans le fichier sont à venir à partir de Django.
Merci de poster l'intégralité de django de configuration de l'enregistrement, il pourrait être votre problème

OriginalL'auteur Dana Ford | 2014-01-02