Seite 2 von 2

Verfasst: Dienstag 7. Oktober 2008, 10:41
von lunar
Pekh hat geschrieben:1) Habe ich nicht behauptet, daß mein Beispiel das Musterbeispiel für die Verwendung des Logging-Moduls ist (aber ich wäre sehr dankbar, wenn du eines bereitstellen könntest).

Code: Alles auswählen

try:
    raise ValueError()
except:
    logging.exception('Unexpected error occured')
Oder, wenn man sys.excepthook verwenden möchte:

Code: Alles auswählen

def exception_handler(*exc_info):
    logging.error('Unexpected error occured', exc_info=exc_info)

sys.excepthook = exception_handler
Man braucht den zusätzlichen Import des traceback-Moduls nicht.
2) Noch eine Verständnisfrage: Was bitte ist meine Funktion 'hook', wenn nicht ein Exceptionhandler?
Ein Hook, der vom globalen Exceptionhandler aufgerufen wird. Die Ausnahme ist zum Zeitpunkt des Aufrufs deiner Funktion bereits "behandelt", daher gibt sys.exc_info() auch None zurück (weswegen logging.exception() in sys.excepthook() nicht ohne weiteres funktioniert).

Verfasst: Dienstag 7. Oktober 2008, 10:48
von Pekh
Vielen Dank.