Python Django - Logging to file

maloz

Captain
Registriert
März 2007
Beiträge
3.125
Hi,
ich stelle mich aktuell mega an. Ich möchte eigene Logging-Texte in ein File schreiben lassen. Django bietet das ja an, bin nach deren Tutorial sowie weiteren Tutorials vorgegangen aber ich bekomme es nicht hin, dass meine eigens erzeugten Logging-Texte im File landen.

settingy.py
Python:
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': 'debug1.log',
        },
    },
    'loggers': {
        '': {
            'handlers': ['file'],
            'level': 'INFO',
        },
    },
}

myapp/views.py
Python:
import logging
logger = logging.getLogger(__name__)
...
logger.info('test')

Das File debug1.log wird erzeugt aber es wird einfach nichts reingeschrieben.
Wo liegt mein Denkfehler?

Danke für euren Input.
 
Ähm, hast du den Logger nicht mit dem Namen "" (leerer string) definiert?

__ name __ sollte "myapp.views" ausgeben (oder sowas ähnliches), das ist nicht "".

Probier mal entweder den logger umzubenennen oder logging.getLogger("")

'loggers': { '': <-- das ist der Loggername (leer)

Ansonsten haben die Logger soweit ich mich richtig erinnern kann eine gewisse Hierachie. Es kann also sein, dass du mit "" den Default überschrieben hast. Also sowas wie django, django.server, django.server.whatever gibt es glaube ich. Ich erinner mich aber nur dunkel an das Thema.

Es kann auch sein, dass der eigentliche Defaultlogger zuerst deklariert wird und du ihn nicht überschreibst.
Ich würde hier erstmal probieren einen eigenen Namen zu verwenden und dann zurück in die Hierachie zu gehen.
 
Zuletzt bearbeitet:
Ein leerer logger '' entspricht root und sollte somit alle logger, inkl. meinem eigenen myapp(.views) beinhalten - so habe ich es gelesen und verstanden.
Ich habe es allerdings auch mit einem definierten Namen probiert und es hat trotzdem nicht geklappt.

edit
Hat sich erledigt. Das Logging war so richtig konfiguriert, nur hatte ich an anderer Stelle einen Denkfehler, an welchen Stellen ich etwas reinschreibe.
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben