Ich habe eine kleine Flasche App, die wie ein REST-API, die viele Methoden, wie diese implementiert verwendet wird:Wie Logging-Nachrichten mit Anfrage Informationen in Kolben anreichern?
@route('/do/something', methods=['POST'])
def something():
app.logger.debug("got request to /do/something")
result = something_implementation(request.json())
app.logger.debug("result was %s", str(result))
return flask.Response(result)
ich diese Log-Meldungen automatisch mit Informationen aus dem Request-Objekt bereichern möchte, wie Header-Informationen, Teile der Körper und was sonst noch bequem ist.
Wie mache ich das auf elegante und pythische Weise?
Natürlich könnte ich app.logger einfach in meine eigene Funktion einfügen und das Anfrageobjekt und die Nachricht weiterleiten, aber es muss einen schöneren und einfacheren Weg geben, den ich vermisse.
Vielen Dank. Ich habe bereits etwas ähnliches, aber es ist nicht genug, ich muss protokollieren, was während der Bearbeitung der Anfrage passiert. Sieht so aus, als müsste ich einen benutzerdefinierten Filter implementieren: https://docs.python.org/2/howto/logging-cookbook.html#using-filters-to-impart-contextual-information Ich muss nur herausfinden, wie um von diesem Filter auf den aktuellen Anforderungskontext zuzugreifen. – Patrick