=================================== 68:ログがどこに出ているか確認しよう =================================== 保守を引き継いだプロジェクトなどで、アプリケーションのログが全く出力されていない、といったことはありませんか?  利用者から「画面にエラーが発生しました、と表示されます」と連絡をもらい、調べてみたらログがどこにも出ていないということもよくある話です。 ログが出力されていないのは論外ですが、実装者がログの重要性がわかっていないと、たびたびこういった問題が起こります。 具体的な失敗 =============== .. index:: ログ .. index:: manage.py runserver Djangoの場合、開発中は ``manage.py runserver`` でWebアプリケーションを実行します。 Djangoのデフォルトの設定では、ページにアクセスするたびにコンソールにアクセスログが出力されます。 しかし「ログ出力を実装する」と言った場合、アクセスログのことではなく、明示的に実装したログのことを指すのが一般的です。 アクセスログを見て「ログが出ている」と考えてはいけません。 .. omission:: ベストプラクティス ========================= ログがどこに出力されるのか、調査しやすい情報が出力されているか、早い段階で確認しておきましょう。 そのために、以下の情報を確認しましょう。 * ``settings.py`` の ``LOGGING`` が設定されていこと * ファイルに出力する設定の場合、ログがファイルに記録されていること * 標準出力に出力する設定の場合、Gunicorn等を起動しているサービスマネージャーのログに記録されていること * 記録されているログに、ログレベルや時刻など期待する情報が出力されていること どのような情報がログに出力されていると良いのかについては、以降のプラクティスで説明します。 また、サービスマネージャーについては :doc:`../プロセス設計/93-サービスマネージャーでプロセスを管理する` を参照してください。 関連 ============ * :doc:`../DjangoORMとの付き合い方/60-Django_ORMでどんなSQLが発行されているか気にしよう` * :doc:`../ネットワーク/107-リバースプロキシ`