2017-01-21 9 views
1

私はフラスコのアプリケーションを実行しています。私はログを書きたいと思います。Flaskにログインするには

app = Flask(__name__) 

print()ステートメントが機能しません。 (おそらく私がドッキングウィンドウコンテナにフラスコを実行しているので?)どこかのウェブ上で、私はこの構文が見つかりました:

app.logger.info('successful query') 

出力を除いて働くかなりかさばるです:

-------------------------------------------------------------------------------- 
INFO in app [/usr/src/app/app.py:187]: 
successful query 
-------------------------------------------------------------------------------- 

あなたはどのように想像することができますこれらの行は、一種の厄介なものです。これまでに4行を印刷したときに印刷することができました。

フラスコ内の任意のメッセージを1行に記録する簡単で簡単な方法はありますか?

+0

アプリロガーを使用しないで、独自のロガーを使用してください。これはすべて標準のPythonロギングです。 – davidism

+0

https://docs.python.org/3/library/logging.htmlを参照してください。私は使用例を探します。それがうまくいく場合は、以下の回答を残しておきましょう。私はそれを受け入れます。 –

+0

@davidism logging.infoは機能しません。メッセージは出ません。他のアイデア? –

答えて

1

私はFormatterがこれを行う最善の方法だと思います。例えば :

import logging 
from logging.handlers import TimedRotatingFileHandler 
from flask import Flask 

app = Flask(__name__) 

formatter = logging.Formatter("[%(asctime)s] %(message)s") 

handler = TimedRotatingFileHandler('path/to/file.log', when='midnight', 
            interval=1, backupCount=5) 
handler.setLevel(logging.INFO) 
handler.setFormatter(formatter) 
app.logger.addHandler(handler) 

いるasctimeメッセージattributes事前に定義されています。

関連する問題