plugin-icon

葉隠 – Yet Another Error Reporter

投稿者: TAROSKY INC.·
"Allowed memory size of xxxxxxxx bytes exhausted" のようなわかりにくいエラーメッセージをわかりやすくするための WordPress プラグイン。
評価
5/5
バージョン
1.3.2
有効インストール数
30
最終更新日時
Mar 28, 2025
葉隠 – Yet Another Error Reporter

次のようなエラーログを見たことはありますか ?

PHP Fatal error: Allowed memory size of xxxxxx bytes exhausted (tried to allocate xxx bytes) in /var/www/wordpress/wp-includes/wp-db.php on line 2007

これはつまり、データベースからデータを取得することで PHP メモリー上限 を超えてしまったことを意味します。多くの場合、サイトが大量のデータを持っており、凄まじい量のループを行なっているときにこのケースが発生します。

しかし、私たちが知りたいのは、どのプラグインがデータを取得しているのか?です。

葉隠は wp-db.php がメモリー上限エラーを引き起こすと、追加の情報を error.log ファイルに追加します:

[08-May-2019 10:28:37 UTC] wpdb Error Backtrace: #1 Kunoichi\Hagakure\DbLogger->filter_query() /app/public/wp-includes/class-wp-hook.php Line 286 #2 WP_Hook->apply_filters() /app/public/wp-includes/plugin.php Line 208 #3 apply_filters /app/public/wp-includes/wp-db.php Line 1871 #4 wpdb->query() /app/public/wp-includes/wp-db.php Line 2579 #5 wpdb->get_results() /app/public/wp-includes/class-wp-query.php Line 2979 #6 WP_Query->get_posts() /app/public/wp-includes/class-wp-query.php Line 3387 #7 WP_Query->query() /app/public/wp-includes/post.php Line 1961 #8 get_posts /app/public/wp-content/plugins/hagakure/hagakure.php Line 34 #9 {closure} /app/public/wp-includes/class-wp-hook.php Line 286 #10 WP_Hook->apply_filters() /app/public/wp-includes/class-wp-hook.php Line 310 #11 WP_Hook->do_action() /app/public/wp-includes/plugin.php Line 465 #12 do_action /app/public/wp-includes/template-loader.php Line 13 #13 require_once /app/public/wp-blog-header.php Line 19 #14 require /app/public/index.php Line 17 #15 URI: /?p=1

このログは wp-db.php によって引き起こされるメモリー制限の致命的なエラーが必ず後に続きます。これで #8get_posts を繰り返し呼び出していることが判明します。

CloudWatch Logs のような通知サービスを利用してログを監視することをオススメします。 この類のエラーは本番環境で起こることが多く、しかもそれを目にすることはあまりありません。 私たちは葉隠を自分たちのホスティングサービスで利用していますので、実装の詳細に触れたブログが公開されるのを楽しみにしてください !

このプラグインはまた、エラーログにデバッグ・バックトレースを追加します。バックトレースするエラーレベルを変更したい場合は、wp-config.php その他に定数を定義してください。

define( 'HAGAKURE_ERROR_LEVEL', E_NOTICE | E_USER_WARNING | E_WARNING | E_USER_ERROR );

それに加え、 SAVEQUERIEStrue になっている場合、スロークエリログにデバッグ・バックトレースが追加されます。デバッグがはかどります。

謝辞

ダミーコンテンツの元になった文章はチャールズ・ディケンズの “Three Ghost Story” です。テキストファイルは Project Gutenberg にあったものを少し修正しました。

無料Business プランを利用中
インストールすることで、WordPress.com の利用規約サードパーティプラグイン利用規約に同意したことになります。
最大テスト回数
WordPress 6.6.4
このプラグインをダウンロードして、 サイトに使用できます。