[Python] Structured logging

Antonio Cavallo a.cavallo a cavallinux.eu
Lun 2 Nov 2020 12:09:51 CET


Qualcosa del genere:
  import logging

  # nella parte che inizializza l'applicazione
  logging.basicConfig(level=logging.INFO)

  class H(logging.Handler):
      def emit(self, record):
          print(dict((n, getattr(record, n)) for n in dir(record) if not n.startswith('_')))

  log = logging.getLogger()
  log.handlers.append(H())


  # il tuo script
 ... logger.warn(qualcosa=valore, qualcosaltro=altrovalore, error=eccezione)

rimpiazza log.handlers.append(H()) con log.handlers = [H()] se vuoi rimuovere completamente l’output di default


> On 2 Nov 2020, at 05:53, Federico Fissore <federico a fsfe.org> wrote:
> 
> Ciao a tutti
> 
> Sono alla ricerca di una libreria per loggare in modo strutturato, usando JSON
> 
> Ho provato diverse librerie, ma nessuna mi soddisfa a pieno: richiedono codice di set up complessi, o non sono configurabili, o non sanno loggare le eccezioni
> 
> Idealmente, quello che vorrei è scrivere codice tipo questo
> 
> logger = ...
> 
> logger.warn(qualcosa=valore, qualcosaltro=altrovalore, error=eccezione)
> 
> e l'output dovrebbe essere qualcosa tipo
> {
> "severity": "WARNING",
> "qualcosa": "valore",
> "qualcosaltro": "altrovalore",
> "error": "traceback formattato con \n e \t alla bisogna"
> }
> 
> Usate il logging strutturato? Cosa usate?
> 
> ciao
> 
> federico
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20201102/23c8f199/attachment.html>


Maggiori informazioni sulla lista Python