[Python-de] Mehrzeiliges Logging

Stefan Schwarzer sschwarzer at sschwarzer.net
Di Mär 13 11:12:38 EDT 2018


On 2018-03-13 14:30, Thomas Güttler wrote:
> seit Jahren verwende ich das unter Unix übliche einzeilige Logging.
> 
> Also ein Aufruf von "logging.info()" wird genau zu einer Zeile im Log-File.
> 
> Ich hätte gerne in Zukunft mehrzeiliges Logging.
> [...]

Wenn ich das richtig sehe, hast du das Problem der eingeschränkten
"Parsebarkeit" auch schon jetzt, wenn ein Traceback mitgeloggt wird.

> Ich bin nun unsicher ob es hier einen "sane default" gibt.
> 
> Die Lösungen, die ich hier gefunden habe, die fühlen sich für mich wie eine "Bastellösung" an:
> 
>     https://stackoverflow.com/questions/49049044/python-setup-of-logging-allowing-multiline-strings-logging-infofoo-nbar

Die Antwort mit dem `NewlineFormatter` sieht für mich eigentlich
ziemlich vernünftig aus.

> Ich möchte aber keine Bastellösung. Ich würde gerne einen Weg gehen, der von tausend anderen Python-Entwicklern
> auch gegangen wird. Es kann doch nicht sein, dass ich der erste bin, der das will, oder?

Nein, du bist wahrscheinlich nicht der erste, aber die bisherige
Konvention, Log-Zeilen zu speichern, ist vom Design her wohl eher
ungeeignet (abgesehen von den geschilderten Workarounds). Der
aktuell übliche Ansatz ist aus meiner Sicht "broken by design".

Was ich recht interessant finde, wäre ein Ansatz mit JSONlines:

http://jsonlines.org/

Ein Logger auf dieser Basis würde die Struktur der Log-Informationen
erhalten.

Viele Grüße
Stefan


Mehr Informationen über die Mailingliste python-de