2011-11-20

開発用サーバー dev_appserver.py がデバッグログを出力しない

今まで home.py で logging.getLogger().setLevel(logging.DEBUG) とかやっていましたが、Python 2.7, webapp2, threadsafe: trueの環境に移行して、CGIモードではなくなって機能しなくなって困ったあげく、今さらながら解決策が分かりました。

開発用サーバー本体 dev_appserver.py のコマンドラインオプション一覧を見るとわかりますが、デフォルトがFalseとなっている '--debug' オプションを付けます。
これによりDEBUGレベルのログがちゃんと出るようになるので、app.yamlで制御されるディスパッチャの動作や、urlfetchの詳細なパラメータが出るようになるのでとても便利です。

Google App Engine Launcherを使っている場合は、プロジェクトごとのApplication SettingsでLaunch Settings, Extra Command Line Flagsに--debugを加えます。