2012-08-05 4 views
6

Gibt es eine Möglichkeit Kolben app.logger aus einer configure Datei config, wie:Wie konfiguriere ich flask app.logger aus einer Konfigurationsdatei?

logging.config.fileConfig('/path/to/logging.cfg') 

oder

logging.config.dictConfig(config_dict) 

So kann ich app.logger.info('some message') verwenden beide eingeloggt und Modus Produkt entwickeln.

+0

Da flask das Standard-'logging'-Modul verwendet, sollten sie sich genau anschließen. washaveyoutried.com? – msw

+0

Ich habe 'logging.config.dictConfig' versucht, aber es funktioniert nicht. – greatghoul

+1

Sie müssen detailliertere Angaben zu dem machen, was Sie versucht haben - sonst ist es schwer zu wissen, was das Problem sein könnte. –

Antwort

1

Ändern Sie logging auf Zeile 22 zu app.logger - das wird den Logger für Ihre aktuelle Flask App konfigurieren. Alternativ können Sie die Funktion getLogger des Protokollmoduls verwenden und app.logger_name verwenden, um den richtigen Protokollierer zu ziehen.

+2

Es war schwer für mich, dies zu verstehen, da die Quellcodeverbindung tot ist. Dann merkte ich, dass Sie nur noch Folgendes tun müssen: Initialisieren Sie zuerst den Flask-Logger und dann die logging.config(). –

+1

@the_maplebar Können Sie ein Snippet – ramu

4

Sie müssen zunächst app.logger anrufen und dann logging.config.dictConfig(config_dict). Der Logger-Name sollte in config_dict und in app.logger_name identisch sein.

+1

Vielen Dank, das funktioniert! Können Sie erklären, warum dies notwendig ist? – alex3772

+1

Es stellt sich heraus, dass das Initialisieren von 'app.logger' vor dem Konfigurieren notwendig ist, da das Initialisieren von' app.logger' vorher hinzugefügte Handler löscht. Weitere Details in dieser GitHub-Ausgabe: https://github.com/pallets/flask/issues/641 –

Verwandte Themen