113

スタンドアロン モードで実行されている Flask サーバーがあります (を使用app.run())。しかし、コンソールにメッセージを表示したくありません。

127.0.0.1 - - [15/Feb/2013 10:52:22] "GET /index.html HTTP/1.1" 200 -
...

詳細モードを無効にするにはどうすればよいですか?

4

12 に答える 12

164

Werkzeug ロガーのレベルを ERROR に設定できます。その場合、エラーのみがログに記録されます。

import logging
log = logging.getLogger('werkzeug')
log.setLevel(logging.ERROR)

OSX、Python 2.7.5、Flask 0.10.0 でテストされた完全に機能する例を次に示します。

from flask import Flask
app = Flask(__name__)

import logging
log = logging.getLogger('werkzeug')
log.setLevel(logging.ERROR)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
于 2013-08-22T11:57:07.057 に答える
9

WSGI サーバーを使用している場合は、ログを [なし] に設定してください。

gevent_server = gevent.pywsgi.WSGIServer(("0.0.0.0", 8080), app,log = None)
于 2018-10-29T06:46:07.883 に答える
8

abort(...)遅い答えですが、各コンソールメッセージ(エラー中に表示されるものを含む)を抑制する方法を見つけました。

import os
import logging

logging.getLogger('werkzeug').disabled = True
os.environ['WERKZEUG_RUN_MAIN'] = 'true'

これは基本的に、Slava VTom Wojcikの回答を組み合わせたものです。

于 2019-07-02T16:40:57.993 に答える
4

私はこれらの応答ログをすべての異なるソリューションで取り除こうとして絶対的な年齢を費やしましたが、結局のところ、Flask / Werkzeug ではなく、Gunicorn のアクセス ログが stderr にダンプされました...

解決策は、Gunicorn 構成ファイルに次のブロックを追加して、デフォルトのアクセス ログ ハンドラーを NullHandler に置き換えることでした。

logconfig_dict = {
    "version": 1,
    "disable_existing_loggers": False,
    "handlers": {
        "console": {"class": "logging.StreamHandler", "level": "INFO"},
        "null": {"class": "logging.NullHandler"},
    },
    "loggers": {
        "gunicorn.error": {"level": "INFO", "propagate": False, "handlers": ["console"]},
        "gunicorn.access": {"level": "INFO", "propagate": False, "handlers": ["null"]},
    },
}
于 2021-04-16T12:26:20.240 に答える
3

どういうわけか、を含む上記のオプションはどれも.disabled = Trueうまくいきませんでした。

ただし、次の方法でうまくいきました。

logging.getLogger('werkzeug').setLevel(logging.CRITICAL)

Python 3.7.3 で 2021 年 11 月現在の最新バージョンを使用する場合:

pip3 list | grep -E "(connexion|Flask|Werkzeug)"
connexion2               2.10.0
Flask                    2.0.2
Werkzeug                 2.0.2
于 2021-11-18T18:47:56.693 に答える