Probleme mit dem logging modul

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ferdi09
User
Beiträge: 16
Registriert: Donnerstag 18. Januar 2007, 11:23

Donnerstag 10. Mai 2007, 15:15

Hallo,
ich habe ein Problem mit dem Logging Modul.

Code: Alles auswählen

import logging
# logging.info("log before I initialize the root logger")
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M',
                    filename='myapp.log',
                    filemode='w')

console = logging.StreamHandler()
console.setLevel(logging.INFO)            # set the log level
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)           # set the format

logging.getLogger('').addHandler(console)   # add to the root logger

logging.info('Hello World')
Dies Beispiel ist aus der Python Documentation entnommen. Nun würde "Hello World" auf der Kommandozeile ausgegeben werden. Da "INFO" auf der Console geloggt wid.

Nun mein Problem: Ruft jemand den root logger auf bevor ich die basicConfig Methode aufgerufen habe, dann wird "Hello World" nicht ausgegeben (dies kann man durch einkommentieren der Zeile 2 testen).
Wie kann ich nachträglich den root logger konfigurieren oder resetten wenn dieser schon initialisiert wurde.

Ich hoffe mein Problem ist klar.

Gruss
Holger
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Donnerstag 10. Mai 2007, 19:03

IMHO müsste das funktionieren:

Code: Alles auswählen

del logging.root.handlers[:]
vor basicConfig().
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten