Kolben Protokollierung nicht funktioniert
Ich versuche, die log-Meldungen im Kolben beide in Datei und stdout. Ich lese das offizielle Kolben docs und kam mit dieser:
from flask import Flask
import logging
from logging import Formatter, FileHandler
app = Flask(__name__)
@app.route('/')
def hello_world():
app.logger.debug('second test message...')
return 'Hello World!'
if __name__ == '__main__':
#Setup the logger
file_handler = FileHandler('output.log')
handler = logging.StreamHandler()
file_handler.setLevel(logging.DEBUG)
handler.setLevel(logging.DEBUG)
file_handler.setFormatter(Formatter(
'%(asctime)s %(levelname)s: %(message)s '
'[in %(pathname)s:%(lineno)d]'
))
handler.setFormatter(Formatter(
'%(asctime)s %(levelname)s: %(message)s '
'[in %(pathname)s:%(lineno)d]'
))
app.logger.addHandler(handler)
app.logger.addHandler(file_handler)
app.logger.error('first test message...')
app.run()
Gibt es mehrere Probleme:
- Keine
output.log
- Datei generiert -
Nur das erste logging-Nachricht funktioniert:
app.logger.error('Test läuft...')
Und nur in stdout...die man in der Ansicht "/" nicht einmal eine Ausgabe auf stdout... mache ich etwas falsch?
Dies ist die Ausgabe vom starten der app und gehen Sie zu /:
2015-03-08 11:33:27,183 ERROR: first test message... [in /home/mosquito/python_projects/flask_tst/flask_tst.py:31]
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [08/Mar/2015 11:33:43] "GET /HTTP/1.1" 200 -
- Funktioniert der Prozess Schreibrechte haben, um die log-Datei?
- Hallo Klaus, ja, der Prozess hat Schreibzugriff Berechtigungen auf Projekt-root-Ordner
- Ich hab das gleiche problem, auch wenn der loglevel ist info, alle, die ich habe ist error log. Und in der Produktion-Modus, Kolben wird von uwsgi.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre (debug -) Meldungen werden immer unterdrückt, indem Sie Fläschchen da Sie nicht im debug-Modus. Wenn Sie das folgende flag auf True, dein code funktioniert.
Den Nachrichten wird jetzt wie erwartet angezeigt.
Dies ist die Ausgabe in der zugehörigen Ausgabedatei:
Dank BennyE_HH, es funktioniert.
Aber Kolben nicht unterdrückt Ebene FEHLER-log-Meldung selbst debug-Modus deaktivieren(standardmäßig deaktiviert).
Ich denke, wir sollten Sie nennen
app.logger.setLevel(logging.DEBUG)
zu kontrollieren log-level auch debug Modus ist falsch.Ich hatte das gleiche Problem und Folgendes bei mir funktioniert: