erweitertes Traceback und Logging

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
Benutzeravatar
grubenfox
User
Beiträge: 612
Registriert: Freitag 2. Dezember 2022, 15:49

__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!
Benutzeravatar
__blackjack__
User
Beiträge: 14056
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
Kebap
User
Beiträge: 776
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

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
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten