2015-02-03 4 views
5

Ich versuche, meine Protokollierungskonfiguration in settings.py zu konfigurieren, und es gibt so viele Optionen, ich habe Probleme beim Replizieren des integrierten Entwicklungsserverprotokolls (das auf die Konsole gedruckt wird).Wie konfiguriere ich mein Django-Protokoll so, dass es wie das integrierte Entwicklungsserverprotokoll funktioniert?

Ich möchte, dass mein Produktionsprotokoll dieselben Informationen aufzeichnet, die normalerweise im Konsolenprotokoll des Entwicklungsservers gedruckt werden (GET-Anfragen, Debug-Informationen usw.). Ich muss entweder wissen, welche Einstellungen ich unten ändern muss oder den Speicherort der Einstellungen für das integrierte Entwicklungsserverprotokoll, damit ich das kopieren kann.

Ich möchte auch keinen Code irgendwo anders als meine settings.py hinzufügen, wenn überhaupt möglich. Ich möchte nicht in meine views.py gehen und angeben, welche Fehler zu drucken oder zu protokollieren sind, ich musste das nie mit dem Entwicklungsserver tun, also hoffe ich, dass ich das herausfinden kann. die default logging configuration für eine Debug-Umgebung

+0

Ich verwende uWSGI für die Produktion, die alle Protokolle (von der Konsole) in Dateien umleiten wird. https://docs.djangoproject.com/de/1.8/howto/deployment/wsgi/uwsgi/ – JimmyYe

Antwort

3

In Django 1.8 ist:

Wenn DEBUG ist True:

  • Die django catch-all-Logger sendet alle Nachrichten auf der WARNING Ebene oder höher, um die Konsole. Django führt zu diesem Zeitpunkt keine Protokollierungsaufrufe durch (die gesamte Protokollierung erfolgt auf der Ebene DEBUG oder wird von den Protokollierern und django.security verarbeitet).
  • Der Logger py.warnings, der Nachrichten von warnings.warn() verarbeitet, sendet Nachrichten an die Konsole.

Diese Protokollierung Konfiguration kann django.utils.log.DEFAULT_LOGGING finden. Beachten Sie, dass der Catch-All-Logger tatsächlich auch Info-Nachrichten erhält, nicht nur Warnungen und darüber.

Wenn Sie die Standardprotokolleinstellungen überschreiben, notieren Sie, dass disable_existing_loggers, wenn auf True, will shut up all of Django's default loggers festgelegt ist.


Der Entwicklungsserver logs every incoming request directly to stderr wie folgt aus:

[18/Oct/2015 12:08:17] "GET /about/ HTTP/1.1" 200 9946 

Dies ist spezifisch für die Entwicklungs-Server und wird nicht in einer Produktionsumgebung übertragen werden, es sei denn Sie es with middleware replizieren.