Seite 1 von 1

Probleme mit dem logging modul

Verfasst: Donnerstag 10. Mai 2007, 15:15
von ferdi09
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

Verfasst: Donnerstag 10. Mai 2007, 19:03
von birkenfeld
IMHO müsste das funktionieren:

Code: Alles auswählen

del logging.root.handlers[:]
vor basicConfig().