プロダクションピラミッド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