Feinheiten beim logging formatter ...

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
drnicolas
User
Beiträge: 115
Registriert: Sonntag 24. Juli 2016, 10:32

Ich wüsste gern die Meinung zur AUsgestaltung eines logging formatters ....

1. aktuell verwende ich %(filename)s %(funcName)-15s. Das funktioniert, aber die Kombination aus filename und funcname kann ganz schön lang werden, sodass das Textbild komisch aussieht.
Kann ich das gleichmässiger gestalten? Mir fiele nur %(filename)-15s %(funcName)-15s ein?

2. Copilot hat das Fehlen von asctime bemängelt.
Das ist tatsächlich richtig; Mein Skript bearbeitet automatisiert eingehende Dateien. Die Zuordnung zu einer "problematischen" Datei ist aber wichtig und gut über die Zeit machbar. Die Startzeit meines Skripts gebe ich einmalig am Anfang aus. Mit filename, funcname und asctime wird der ANfang der Logging-Zeile ganz schön überladen

Wie sähe der optimale formatter aus? Im Grunde müsste noch die bearbeitete EINgabedatei in den formatter.
Benutzeravatar
sparrow
User
Beiträge: 4577
Registriert: Freitag 17. April 2009, 10:28

Ich komme mal von der anderen Seite und bemerke: Eigentlich kommt es darauf an, wie du die Dateien liest. Und da gibt es kein richtig oder falsch. Du könntest dir Formate wie das Common Log Format als Inspiration anschauen. Wichtig ist, dass du alle Informationen logst, die du brauchst - und nach Möglichkeit nicht mehr. Wird die Zeile zu lang, könntest du sie in mehrere Zeilen aufteilen. Ich habe auch Programme, die in ein CSV-Format loggen, weil mir das bei der Auswertung hilft.
Benutzeravatar
__blackjack__
User
Beiträge: 14184
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Oder man loggt gar keine reine Textdatei sondern strukturierte Daten, beispielsweise als JSON-Lines. Da lohnt eventuell auch ein Blick auf `structlog`.
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
drnicolas
User
Beiträge: 115
Registriert: Sonntag 24. Juli 2016, 10:32

Vielen Dank!
Tatsächlich ist das Programm mit debug-Meldungen üebrfrachtet. Vielleicht zu viel des Guten ....
Benutzeravatar
__blackjack__
User
Beiträge: 14184
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@drnicolas: Deswegen gibt es die Level ja, man muss die ja nicht ausgeben wenn man nicht gerade auf Fehlersuche ist.
“Every thinking person fears nuclear war and every technological nation plans for it. Everyone knows
it's madness, and every country has an excuse.” — Carl Sagan, Cosmos, Episode 13: Who Speaks for Earth?
Antworten