2017-11-08 1 views
0

Ich habe mir den Kopf über das Erstellen einer einfachen Logdatei innerhalb meiner Django-Anwendung. Ich habe versucht, this question, sowie die Beispiele auf den Dokumenten anzuwenden, aber es scheint einfach nicht zu funktionieren und ich weiß nicht, was schief läuft.Einfache Log auf Konsole in Django 1.7.11

Meine aktuelle Logfile, zweites Beispiel direkt aus den doc:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'class': 'logging.StreamHandler', 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['console'], 
      'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'), 
     }, 
    }, 
} 

docs besagt Folgendes:

"diese Konfiguration sendet nur Nachrichten von Level INFO oder höher auf die Konsole"

In meinem Verständnis, wenn ich dies in meine home.view.py Datei legen würde ...

import logging 
log = logging.getLogger(__name__) 
log.debug("Hey there it works!!") 
log.info("Hey there it works!!") 
log.warn("Hey there it works!!") 
log.error("Hey there it works!!") 

... ich sollte die info, die warn und die error Nachricht an meine Konsole ausgegeben bekommen, wenn ein Anruf zu home.views.py gemacht wird, was ich dachte, passiert, wenn ich die richtige URL besuchen.

Dies scheint falsch zu sein. Es scheint aber, dass nur und error gedruckt wird, und nur wenn ich manage.py collectstatic ausführen.

WARNING:home.views:Hey there it works!! 
ERROR:home.views:Hey there it works!! 

Ich mag die Log-Meldungen in der Konsole erhalten, wann immer ich eine Webseite besuchen, die von home.views.py gemacht wird. Wie mache ich das?

Antwort

0

Diese Methode:

os.getenv('DJANGO_LOG_LEVEL', 'INFO') 

Zuerst versucht, die Umgebungsvariable zu erhalten, wenn gesetzt. Wenn nicht festgelegt, wird standardmäßig das zweite Argument verwendet. Seine mögliche ist etwas höher als INFO gesetzt.

Um diese Hypothese zu testen, führen Sie in Ihrer Umgebung Folgendes aus.

echo $DJANGO_LOG_LEVEL 

Stellen Sie sicher, seine entweder 1. nicht gesetzt ist, oder 2. Satz INFO

export DJANGO_LOG_LEVEL=INFO 
+0

Ausführen des 'echo' nichts zurückgibt. Running 'env = os.getenv ('DJANGO_LOG_LEVEL', 'INFO')' gibt 'INFO' zurück. Es scheint, dass es nicht eingestellt ist. –