Flask-Protokolle von INFO zu DEBUG ändern

8

Flask zeichnet standardmäßig Dinge wie GET- und POST-Anfragen direkt mit einem INFO-Tag auf. Wenn Sie einen benutzerdefinierten Logger implementieren, werden diese auf den gleichen Logger gepostet und meine INFO-Ebene durcheinander gebracht. Gibt es eine Möglichkeit, sie auf eine andere Ebene wie DEBUG herunterzustufen?

Dies ist der Logger, den ich verwende:

%Vor%     
ZekeDroid 06.05.2015, 19:08
quelle

2 Antworten

6

Ich bin mir nicht sicher, wie man Log-Level von Requests herunterstufen kann (wie es normalerweise im Code wie logging.info ("...") explizit angegeben ist), aber das Folgende hilft Ihnen, die Ausführlichkeit von zu reduzieren Flask selbst.

Python ermöglicht Ihnen mehrere Logger mit jeweils eigenen Loglevels. Sie können jeden vorhandenen Logger ändern, wenn Sie den Modulnamen, in dem er sich befindet, oder den Namen, mit dem er registriert wurde, wie in hier .

Zum Beispiel:

%Vor%

Das obige kann für jedes Python-Modul gemacht werden. Flask bietet einen Logger pro App. Sie können einen Verweis darauf erhalten:

%Vor%     
foobarto 06.05.2015, 20:23
quelle
6

Tatsächlich gibt es eine Möglichkeit, einen Protokolldatensatz von INFO auf DEBUG herabzustufen (selbst wenn er bereits mit einem Aufruf wie info() ausgegeben wurde). Dies kann durch Verwendung eines Filters erreicht werden, der an einem Logger angebracht ist. Laut den Dokumenten überprüft ein Filter:

  

Soll der angegebene Datensatz protokolliert werden? Gibt null für nein, nicht null für   Ja. Wenn es für angemessen erachtet wird, kann der Datensatz direkt von geändert werden   diese Methode.

Daher kann ein Filter die Ebene eines Protokolleintrags ändern ( levelno und levelname -Attribute). Später kann ein Handler diesen Datensatz basierend auf der neuen Ebene zulassen oder löschen.

    
Piotr Ćwiek 26.05.2017 08:47
quelle

Tags und Links