Ich arbeite mit einer Python/Flask-Anwendung und versuche, die Protokolle in JSON zu formatieren (nach Zeilen).Flask-App formatieren meldet sich an json
Mit dem Python-json-Logger-Paket habe ich die Formatierer für die app.logger wie folgt geändert:
from pythonjsonlogger import jsonlogger
formatter = jsonlogger.JsonFormatter(
'%(asctime) %(levelname) %(module) %(funcName) %(lineno) %(message)')
app.logger.handlers[0].setFormatter(formatter)
Dies funktioniert wie erwartet. Alle Nachrichten, die an app.logger
übergeben werden, sind in json korrekt formatiert.
Die Anwendung protokolliert jedoch auch automatisch alle Anfragen. Diese Information wird in stdout wie folgt angezeigt:
127.0.0.1 - - [19/Jun/2015 12:22:03] "GET /portal/ HTTP/1.1" 200 -
Ich möchte diese Informationen in JSON auch formatiert werden. Ich habe nach dem Logger/Code gesucht, der für das Erstellen dieser Ausgabe ohne Erfolg verantwortlich ist.
Wo wird diese Ausgabe generiert? Sind die Mechanismen zum Ändern der Formatierung dieser protokollierten Informationen?
Diese Protokolle Sie sehen wahrscheinlich von dem Web-Server kommen Sie nutzen und nicht von Ihrem 'wsgi' App Welchen Server benutzen Sie? – sirfz
@MartijnPieters Sie könnten Recht haben, aber es wäre nicht sinnvoll für 'Flask', Zugriffsanforderungen zu protokollieren, da es nicht seine Aufgabe sein soll – sirfz
@sirfz: außer, tut es nicht. Sie sind in der Tat richtig. –