1

プロダクションピラミッドWeb プロジェクトで一時的にデバッグ メッセージをオンにしたいので、ファイルを調整してHerokuproduction.iniにプッシュし、エラーと警告レベルのメッセージのみを表示しました。

ローカル PC で次のようなピラミッド アプリケーションを起動すると、すべてのログ レベル メッセージが表示されるので、これは奇妙に思えると思いました。

env/bin/pserve production.ini

OK、Heroku での実行方法とは正確には異なります。実際には、次のような小さな Pythonから実行されます (ファイル名はrunapp.py):

import os

from paste.deploy import loadapp
from waitress import serve

if __name__ == "__main__":
    port = int(os.environ.get("PORT", 5000))
    app = loadapp('config:production.ini', relative_to='.')

    serve(app, host='0.0.0.0', port=port)

さて、これをローカル PC で実行すると、Heroku にデプロイしたときと同じ動作が得られます (ほとんど驚くことではありません)。

 python runapp.py

私の質問は、ここで何が欠けているのですか? 2 番目の方法で実行すると、ERROR と WARN 以外のログ メッセージが標準出力に出力されないのはなぜですか? 確かに、同じproduction.iniファイルを使用しているので、pserveプロセスを使用した場合と同じように動作するはずですか?

からの私のログセクションは次のproduction.iniとおりです。

###
# logging configuration
# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
###

[loggers]
keys = root, test

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = DEBUG
handlers = console

[logger_test]
level = DEBUG
handlers = console
qualname = test

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = DEBUG
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
4

1 に答える 1