Ich möchte Python Logging-Ausgabe in Form von Baum entsprechend Logger-Baum haben. Schauen Sie sich nur ein Beispiel an.Format Protokollmeldungen als Baum
Können sagen, wir haben einen Code:
import logging
logger_a = logging.getLogger("a")
logger_a_b = logging.getLogger("a.b")
logger_a_b_c = logging.getLogger("a.b.c")
# ...
logger_a.debug("One")
logger_a_b.warning("two")
logger_a_b.warning("three")
logger_a_b_c.critical("Four")
logger_a_b.warning("Five")
Der Ausgang etwas sein sollte:
<--"a"
| DEBUG: One
|
o<--"a.b"
| | WARNING: Two
| | WARNING: Three
| |
| o<--"a.b.c"
| | CRITICAL: Four
| |
| | WARNING: Five
I Formatierer für jedes der Protokoll von Hand schreiben konnte, aber nicht lösen das Problem, etwas wie o < - "ab" richtig einzufügen, und ich würde es vorziehen, Offset automatisch durch Protokollierung der Struktur zu berechnen.
Es gibt ein Modul namens logging tree. Es druckt das Protokollierungslayout. Was ich möchte, ist Protokollnachrichten ungefähr auf die gleiche Weise zu drucken.
Kennen Sie irgendwelche Bibliotheken, Möglichkeiten, es einfach zu tun?
Ich denke, Sie müssen Ihre eigenen Log-Handler schreiben, vielleicht von der integrierten 'Logging.StreamHandler' erben. –
Es wäre nicht schwer, die Standardausgabe in diesen Baum zu transformieren: Holen Sie den Modulnamen, geteilt durch Punkt, zeichnen Sie Baum vor der Nachricht. Scheint so, als hättest du schon alle Informationen, benötige nur eine Ansichtstransformation. – viraptor
Wahrscheinlich könnte das genug sein – MajesticRa