Seite 1 von 1

erweitertes Traceback und Logging

Verfasst: Donnerstag 30. März 2023, 09:53
von grubenfox
__blackjack__ hat geschrieben: Donnerstag 30. März 2023, 08:31 Es macht Sinn bei Diensten bei unerwarteten Ausnahmen, die vom Programm behandelt werden in dem sie ignoriert werden, möglichst viel zu protokollieren. Also mindestens mit dem `logging`-Modul aus der Standardbibliothek die Ausnahme samt Traceback. Ich mag das externe `loguru`, weil das noch ein paar Informationen zu lokalen Variablen mit in den Traceback packt, die bei der Fehler-/Ursachensuche hilfreich sein können.
Mal wieder so ein Moment wie ich ihn hier schon öfter hatte: :shock: "Warum hat mir niemand früher gesagt dass es auch DAS gibt!" :D (ich glaube z.b. von Sympy hatte ich auch hier zum ersten mal gehört.Da fehlt mir aber der passende Anwendungsfall.) Aber `loguru` sieht ja sehr interessant aus!

Re: erweitertes Traceback und Logging

Verfasst: Donnerstag 30. März 2023, 11:41
von __blackjack__
Falls es wichtig ist Protokollnachrichten (auch inkrementell) mit Informationen anzureichern, und die maschinell verarbeitbar zu speichern oder an andere Systeme weiter zu leiten ist `structlog` auch eine interessante Alternative.

Re: erweitertes Traceback und Logging

Verfasst: Freitag 31. März 2023, 09:44
von Kebap
Dann werfe ich hier noch das "snoop" Paket in den Raum, das blackjack schon anderswo empfohlen hatte: : https://pypi.org/project/snoop/
__blackjack__ hat geschrieben: Dienstag 17. Januar 2023, 09:59 Mit `snoop` kann man sich die Aufrufreihenfolge und - hierarchie protokollieren lassen:

Code: Alles auswählen

09:58:23.01 >>> Call to main in File "forum21.py", line 14
09:58:23.01   14 | def main():
09:58:23.01   15 |     some_function()
    09:58:23.01 >>> Call to some_function in File "forum21.py", line 5
    09:58:23.01    5 | def some_function():
    09:58:23.01    6 |     another_function()
        09:58:23.01 >>> Call to another_function in File "forum21.py", line 9
        09:58:23.01    9 | def another_function():
        09:58:23.01   10 |     print("Hello, World")
Hello, World
        09:58:23.01 <<< Return value from another_function: None
    09:58:23.01    6 |     another_function()
    09:58:23.01 <<< Return value from some_function: None
09:58:23.01   15 |     some_function()
09:58:23.01 <<< Return value from main: None