2014-12-29 2 views
11

Ich benutze Django-Anwendung mit Gunicorn, und ich kann keine Log-Nachrichten sehen, die ich schreibe. HierAnmelden bei Django und Gunicorn

ist der Code, der die Protokolle schreibt:

logger = logging.getLogger(__name__) 

def home_page(request): 
    logger.warning('in home page') 

(Hinweis: dieser Code auf jeden Fall ausgeführt wird, da dies eine Ansicht ist, die auf der Homepage führt)

Dies ist meine Protokolle Konfiguration von Einstellungen Py:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'stream': sys.stdout, 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['console'], 
     }, 
    }, 
    'root': {'level': 'INFO'}, 
} 

ich betreibe gunicorn als Dämon mit den folgenden Argumenten:

--access-logfile ../access.log --error-logfile --log-level debug ../error.log 

Sowohl access.log als auch error.log werden erstellt und mit Gunicorn-Nachrichten gefüllt, aber ich kann die Nachrichten, die ich schreibe, nicht sehen.

Dank

Antwort

13

Ich habe mein Problem gelöst. Bereitstellung der Details, so dass es jemandem mit ähnlichen Problemen helfen kann.

Entschieden, nicht mit Gunicorn und Django-Logs zu verwechseln und separate Log-Datei für Django zu erstellen.

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
     }, 
     'logfile': { 
      'level':'DEBUG', 
      'class':'logging.FileHandler', 
      'filename': BASE_DIR + "/../logfile", 
     }, 
    }, 
    'root': { 
     'level': 'INFO', 
     'handlers': ['console', 'logfile'] 
    }, 
} 

Mit dieser Konfiguration jede Nachricht mit der Schwere geschrieben> = wird INFO geschrieben werden „Logfile“ etwas außerhalb von Quellverzeichnis befindet sich in Datei.

+0

Danke! Ich hatte Probleme, ein grundlegendes Beispiel wie dieses zu finden, das mit Gunicorn arbeitete. – mirth23

+0

Es ist auch auf stderr geschrieben, oder? –

+1

Ich denke, es ist standardmäßig in stderr geschrieben. es zu schreiben, auch sollten Sie die Standardausgabe einen anderen Handler mit angegebenen Stream wie folgt hinzu: 'console_stdout': { 'Niveau': 'DEBUG', 'Stream': sys.stdout, 'Klasse': ' logging.StreamHandler ' } –