Drupalでシステムログを確認する方法


Drupalでサイトを構築したり改修を行った時にソースコードの記述ミス等が原因でシステムエラーになってしまったり、そこまで重度のエラーではない場合、コンテンツは表示されますが、自分が期待していた又は想定していた結果と違う結果になってしまう事も良くあります。

その様な場合の調査や確認には、ログを確認しないと解決出来ないケースが多いので今回はDrupalでのログの確認方法についての記事を書かせて頂きました。

 

【前準備】

Drupalでログを確認する為には、「Database Logging」というモジュールを有効にして下さい。

Drupal管理メニュー⇒環境設定のモジュール一覧の中のコア(Database Logging)にチェックを入れて一番最下部にあるインストールボタンを押してモジュールを有効化して下さい。

Database Loggingモジュールの有効化(インストール)が完了した後はモジュールの初期設定を行います。

Drupal管理メニュー⇒環境設定のモジュール一覧を再度開き、Database Loggingの構成をクリックして下さい。

設定画面が表示されるので必要な設定を行って下さい。

表示するエラーメッセージのレベルや最大保存数も指定出来ます。

エラーレベルに関しては、開発環境では「全てのメッセージ」にしておくとシステムエラーメッセージのログやワーニングも保存されるので調査等には有効です。

本番環境では基本的に「なし」にすることをお勧めします。

 

【システムエラー(致命的エラー)以外のログ確認方法】

システムエラー以外のログの確認に関しては、以下で確認出来ます。

Drupal管理メニュー⇒レポート⇒最近のログメッセージ

 

システムエラー(致命的エラー)のログ確認方法

Drupalでシステムエラーが発生した場合は、デフォルトでは真っ白な画面にシステムエラーのメッセージが表示されるだけで具体的にどこでエラーが発生しているのかが分かりません。

システムエラーが発生した場合は、Drupal管理にアクセスしても同じ様にエラーメッセージが表示されるのでDatabase Logの確認も出来ない状態です。

システムエラーの問題解決にはエラー内容が分からないと解決までに時間が掛かってしまいます。

直前に修正したソースやインストールしたモジュール等の心当たりがある場合は、元に戻す事により、解決出来るケースもありますが、複数人で開発を行っている場合は、自分以外の人が修正した影響でシステムエラーが発生した可能性もあるのでエラー内容の詳細を知ることが重要です。

以下の手順でシステムエラー発生時でもエラー内容の詳細を表示させることが可能です。

docroot/sites/default/setting.phpに以下を追加

$config['system.logging']['error_level'] = 'verbose';

上記の1行を追加してシステムエラー画面をリロードすれば詳細なエラー内容が表示されます。(本番環境には追加しない事をお勧めします。)

 

今回はエラー発生時の調査方法についての記事を書かせて頂きました。

この記事がDrupalデバッグ時の参考になれば幸いです。

Profile picture for user Satoru Ono
Satoru Ono