web-dev-qa-db-ja.com

WordPressでerror_log()を使用するにはどうすればよいですか?

カスタムでerror_log()を使用しようとしていますWordPressプラグインを構築していますが、何らかの理由で使用できません。

error_log()を使用すると、サイトが壊れますが、_debug.log_にエラーが表示されません。

次のように_wp_config.php_ファイルにデバッグを設定しました。

_define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
_

不思議なことに、テーマでerror_log()を使用すると、サイトは壊れませんが、_debug.log_にも何も出力されません。

WordPressプラグインとテーマでerror_log()を使用できるようにするには、何をする必要がありますか?

私はWordPress 3.9.1を使用しています。

15
Michael Lynch

Codex によると、デフォルトでは_WP_DEBUG_DISPLAY_をtrueに設定する必要がありますが、そうではないようです。

define('WP_DEBUG_DISPLAY', true);を_wp_config.php_に追加すると、エラーログが修正されました。

_WP_DEBUG_DISPLAY_をfalseに設定すると、ブラウザからエラーが削除されましたが、ログに出力できるようになりました。

trueまたはfalseに設定したかどうかにかかわらず、ログにエラーを出力するには、Wordpressにはdefine('WP_DEBUG_DISPLAY');が必要であるように思われます。

7
Michael Lynch

2019年更新


デバッグを有効にする

次のコードをwp-config.phpに追加するだけで、デバッグを有効にできます。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );

debug.logフォルダにwp-contentファイルが生成されます。


実稼働環境での使用

エラーをフロントエンドに出力せずにログに記録するには、次の行を追加します。

define( 'WP_DEBUG_DISPLAY', false );

これは、ページの訪問者がログを見ることができないため、本番環境で非常に役立ちます。


印刷エラー

これで、error_log関数を使用してログに書き込むことができます。

error_log( 'Hello World!' );

または、print_rメソッドを使用して出力をきれいに印刷します。

error_log( print_r( 'Hello World!', true ) );

プロのヒント:bashを使用している場合は、tail -f wp-content/debug.logでログを確認できます

4
Orlandster

私も同じ問題を抱えてる。私にとって、この行をコメントアウトすることは助けになりました。

define( 'WP_DEBUG_LOG', true );
2
Arun Basil Lal