2017-05-28 15 views
0

WSGIはリクエストコンテキストをFlaskに渡します。どのように私はそれにアクセスするのですか?Apacheエラーログへの書き込みのためのPythonフラスコリクエストコンテキストへのアクセス

例えば、WSGIを使用していないフラスコアプリからWebサーバのエラー・ログに書き込むために、私はstderrに書き込み:ログ出力のこのタイプの

sys.stderr.write(str(msg) + "\n") 

、Python用WSGIは、私が使用する必要がありますWSGIリクエストコンテキストenviron['wsgi.errors']See the WSGI debugging docs.

どうすればよいですか?

答えて

0

アクセスWSGIと非WSGI両方のconfigsのためのWebサーバのエラーログにrequest.environ

ログ経由でWSGIリクエストコンテキスト:

def log(msg): 
    out_stream = sys.stderr 
    # See http://modwsgi.readthedocs.io/en/develop/user-guides/debugging-techniques.html 
    if 'wsgi.errors' in request.environ: out_stream = request.environ['wsgi.errors'] 
    out_stream.write(str(msg) + "\n") 
1

あなただけprint()を使用することができますmod_wsgiを使用している場合。それをキャプチャしてApacheのエラーログに送ります。 mod_wsgiの新しいバージョンを十分に使用し、リクエストのコンテキスト内で実行された場合は、リクエストのApacheレベルでのロギングにも関連付けられます。これは、Apacheログ形式で設定することにより、必要に応じてApache要求IDを使用して、同じ要求に対してApacheのログ記録に関連付けることができます。

一般に、すべてのWSGIサーバーは、出力をキャプチャしてログに送信します(print())。唯一の例外は、CGI/FASTCGI/SCGIを上回るWSGIの場合です。したがって、wsgi.errorsの使用は特に必要ではなく、実際にコードを使用することはまれです。

+0

Thanks Graham! WSGIデバッグドキュメントを更新することができます。http://modwsgi.readthedocs.io/en/develop/user-guides/debugging-techniques.html#apache-error-log-files –

関連する問題