Mi piacerebbe avere l'output di registrazione Python in forma di albero corrispondente all'albero del logger. Guarda l'esempio.Formato messaggi di registro come albero
consente di dire che abbiamo un codice:
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")
L'output dovrebbe essere qualcosa del tipo:
<--"a"
| DEBUG: One
|
o<--"a.b"
| | WARNING: Two
| | WARNING: Three
| |
| o<--"a.b.c"
| | CRITICAL: Four
| |
| | WARNING: Five
Potrei scrivere formattatori per ciascuno dei log a mano, ma non risolve il problema di inserire qualcosa come o < - "ab" a destra e preferirei calcolare l'offset automaticamente tramite la struttura di registrazione.
C'è un modulo chiamato logging tree. Stampa il layout di registrazione. Quello che vorrei, è stampare i messaggi di registro all'incirca nello stesso modo.
Conosci qualche biblioteca, modi per farlo in modo semplice?
Penso che sarà necessario scrivere il proprio gestore di log, magari ereditando dal 'logging.StreamHandler' incorporato. –
Tuttavia, non sarebbe difficile trasformare l'output standard in questo albero: ottenere il nome del modulo, diviso per punto, disegnare l'albero prima del messaggio. Sembra che tu abbia già tutte le informazioni, solo bisogno di una trasformazione della vista. – viraptor
Probabilmente potrebbe essere sufficiente – MajesticRa