[Python-de] Traceback ohne Exception

Henning.Ramm at mediapro-gmbh.de Henning.Ramm at mediapro-gmbh.de
Mit Okt 5 15:11:47 CEST 2005


Ahoi!

Ich versuche, Python's Standard-Logging durch eine Dispatcher- & Twisted-Reactor-Lösung zu ersetzen:

    def sendLog(self, message, level='INFO', **kwargs):
        """
        Sends a 'Log' signal using dispatcher and reactor.

        `message`
            can be anything, but must be str()able,
            unchanged message is sent as 'message', str(message) as 'text' key.

        `level`
            should be in '(DEBUG, INFO, WARNING, ERROR, CRITICAL)'
            (default log levels)
        """
        return reactor.callLater(0, dispatcher.send, sender=self,
            signal='Log', level=level,
            text=str(message), message=message, **kwargs)

Somit kann ich verschiedene Log-Handler auf das Signal reagieren lassen.
Was mir dabei noch fehlt, ist die Angabe der Zeile/Funktion, von wo
'sendLog' aufgerufen wurde.

Ich nehme an, dass man das mit dem traceback-Modul irgendwie herausbekommt; nach der Doku sieht es aber so aus, als müsste ich dazu eine Exception liefern.

Könnte mir da bitte jemand auf die Sprünge helfen? Wie finde ich heraus, von wo aus eine Funktion aufgerufen wurde, möglichst über mehrere Stufen (hier: dispatcher.send, reactor.callLater, sendLog)?


Grüße vom Südsee!
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Systembetreuung / Systementwicklung