Sto lavorando con un'applicazione Python/Flask e sto cercando di ottenere i log da formattare (per riga) in json.Formatting Flask app logs in json
Usando il pacchetto python-JSON-logger, ho modificato il formattatore per l'app.logger come segue:
from pythonjsonlogger import jsonlogger
formatter = jsonlogger.JsonFormatter(
'%(asctime) %(levelname) %(module) %(funcName) %(lineno) %(message)')
app.logger.handlers[0].setFormatter(formatter)
Questo funziona come previsto. Tutti i messaggi passati a app.logger
sono formattati correttamente in json.
Tuttavia, l'applicazione registra automaticamente tutte le richieste. Queste informazioni vengono visualizzate nello stdout come segue:
127.0.0.1 - - [19/Jun/2015 12:22:03] "GET /portal/ HTTP/1.1" 200 -
Desidero che questa informazione sia formattata anche in JSON. Stavo cercando il logger/codice che è responsabile della creazione di questo output senza successo.
Dove viene generata questa uscita? I meccanismi per modificare la formattazione di queste informazioni registrate?
Quei tronchi che stai vedendo sono probabilmente provenienti dal server web che si sta utilizzando e non dal 'wsgi' app. Quale server stai usando? – sirfz
@MartijnPieters potresti avere ragione ma non avrebbe senso per 'Flask' per registrare le richieste di accesso in quanto non dovrebbe essere il suo lavoro – sirfz
@sirfz: tranne, non è così. In effetti, sei corretto. –