2013-05-08 5 views
6

Ich versuche, meine Logging-Einstellungen zu logging.info('any message') zu einer Datei über stdout zu konfigurieren.Gunicorn Django und Logging-Informationen in eine Datei

Das ist mein gunicorn_django Skript:

$ gunicorn_django -w $NUM_WORKERS --user=$USER --group=$GROUP --log-level=info --log-file=$LOGFILE &>>$LOGFILE

sind meine Protokollierungseinstellungen sind:

import sys 
LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'filters': { 
     'require_debug_false': { 
      '()': 'django.utils.log.RequireDebugFalse' 
     } 
    }, 
    'handlers': { 
     'console': { 
      'level': 'INFO', 
      'filters': ['require_debug_false'], 
      'class': 'logging.StreamHandler', 
      'stream': sys.stdout, 
      'formatter': 'simple', 
     }, 
     'mail_admins': { 
      'level': 'ERROR', 
      'filters': ['require_debug_false'], 
      'class': 'django.utils.log.AdminEmailHandler' 
     } 
    }, 
    'loggers': { 
     'app.location': { 
      'handlers': ['console'], 
      'level': 'INFO', 
      'propagate': False, 
     }, 
     'django.request': { 
      'handlers': ['mail_admins'], 
      'level': 'ERROR', 
      'propagate': True, 
     }, 
    } 
} 

Wenn ich tun:

import logging 
logging.getLogger('app.location') 
logging.info('any message') 

Es ist nicht angemeldet dem gunicorn_django $ LOGFILE. Nur print >> sys.stderr Nachrichten scheinen in der $ LOGFILE zeigte

Wie kann werden log I Info-Nachrichten (über stdout) in eine Datei

Antwort

4

Ihr Logger ist nur Müll immer gesammelt, sobald Sie es schaffen. Sie müssen einen Verweis darauf als Logger behalten und diesen Logger dann wie folgt verwenden:

import logging 


logger = logging.getLogger('app.location') 
logger.info('any message') 
Verwandte Themen