WordPressでエラーログを取得する方法です。
WordPressはデフォルトではエラーログを出力しない設定になっているので、テンプレート開発やプラグイン開発をする場合は有効にしたほうがよいでしょう。
設定ファイル変更
まず、設定ファイル「wp-config.php」を編集します。
WP_DEBUGでデバッグモードを有効にすることで、エラーが出力されるようになります。
// define('WP_DEBUG', false); define('WP_DEBUG', true);
但し、このままではエラーが画面に表示されてしまうので、以下の設定も追加します。
これにより、エラーは画面に表示されずにログファイルに出力されるようになります。
define('WP_DEBUG_DISPLAY', false); define('WP_DEBUG_LOG', true);
ログファイルは「…/wp-content/debug.log」に出力されます。
サーバ環境によりますが、ログファイルは外部からアクセスできないように、パーミッションを640などに変更しましょう。
ここで、ログファイルが肥大化しないか監視が必要なので、注意します。
動作確認
エラーログが機能しているか確認するため、意図的にエラーを発生させてみます。
テンプレートのfunctions.phpの任意の箇所に以下のコードを埋め込みます。
error_log('Error Log Test');
ブラウザでサイトにアクセスした後、ログファイルを確認すると、以下のようなメッセージが表示されていると思います。
[01-Jan-2023 12:00:00 UTC] Error Log Test
ログのカスタマイズ
日本時間に設定
ログの日時が世界標準の「UTC」になっているので、日本時間に調整します。
以下のように、設定ファイル「wp-settings.php」を編集します。
// date_default_timezone_set( 'UTC' ); date_default_timezone_set( 'Asia/Tokyo' );
ログファイル名とディレクトリの変更
ファイル肥大化を防ぐため、ログを1ファイルに出力するのではなく、日付毎にファイル名を生成するようにします。
また、新規ファイルが外部からアクセスできないように、公開ディレクトリの外に出力するように設定します。
例えば、以下のように設定すると、ドキュメントルートの外に「/log/wp_debug_20230219.log」といように、日々、新規ファイルでログが出力されます。
define('WP_DEBUG_LOG', dirname(__FILE__) . '/../log/wp_debug_' . date('Ymd') . '.log');
コメントする