Ich versuche, Nachrichten in Flask sowohl in Datei und stdout zu protokollieren. Ich habe die offiziellen Flask docs gelesen und kam mit dieser:Flask Protokollierung funktioniert überhaupt nicht
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()
Es gibt mehrere Probleme:
- Keine
output.log
-Datei generiert wird Nur die erste Protokollmeldung funktioniert:
app.logger.error ('Test ...')
Und nur in stdout ... der in der Ansicht "/" druckt nicht einmal auf stdout ... mache ich etwas falsch?
Dies ist die Ausgabe von dem Start der App und gehen /:
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 -
Hat der Prozess Schreibberechtigungen für die Protokolldatei? –
Hallo Klaus, ja, Prozess hat Schreibrechte im Projekt Stammordner – AlejandroVK
Ich habe das gleiche Problem, auch wenn der Loglevel auf Info gesetzt ist, alles, was ich habe ist Fehlerprotokoll. Und im Produktionsmodus wird die Flasche von uwsgi betrieben. – aGuegu