プラグインから(失敗した)cronアクションを記録するための推奨方法はありますか?たとえば、1時間ごとに外部サービスと同期するプラグインがあります。変更された量だけでなく、同期が失敗したときも記録します。ここで何をお勧めですか?新しいデータベーステーブル? Log Deprecated Notices pluginはこれをカスタム投稿タイプで行いますが、これはオーバーヘッドが大きすぎるのでしょうか。 WordPressには標準のログ記録パッケージは付属していません ?
ファイルにを使用してイベントを書き込みます。ここにいくつかの欠点があります。
データベーステーブルを使用します。独自のデータベーステーブルを作成し、そこでイベントをログに記録します。上記の欠点のいずれも当てはまりません。それほど複雑にはなりません。プラグインフックを使用してテーブルの作成と削除を自動化すれば、かなり信頼できるログシステムができると思います。
電子メールを送信する。ログの関連性に応じて、常にこの方法を選ぶことができます。とにかく失敗した場合に備えて、おそらくEメールを送りたいと思うでしょう。
OSロガーを使用してください。 PHPで syslog 関数を使用すると、システムロガーにイベントを書き込むことができます(UNIXの場合はsyslog、Windows NTの場合はEvent Log)。ユーザ定義のsyslogを設定すると、配置が複雑になります。
最後に;通常のケースである と を記録するか、例外のみを記録するかを検討する必要があります。 Jeff Atwoodはこれについて良い writeup をしました。
お役に立てれば!
this のようなロギング機能を使用して、wp-config.phpを以下のように設定することでdebug.logにログを書き出します。 here :
/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content (if Apache does not have write permission, you may need to create
* the file first and set the appropriate permissions (i.e. use 666) )
*/
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);
これは少なくともデバッグや開発の目的ではうまくいくはずです(本番用のロギングがどれほど素晴らしいかはわかりませんが、開発ではうまくいきます)。
私は、このデータをwp_posts
に入れるとテーブルが管理不能なサイズに急速に成長する可能性があることに同意します。テーブルを作成しても大丈夫です。私はもう一歩先を行き、プラグインの使用をやめた場合にログテーブルをクリーンアップする方法を誰かに与えるでしょう。
私はテーブルを作成するプラグインを恐れていませんが、おそらく8000,000のwp_term_relationships
レコードと300,000の投稿を持つWordPressデータベースを見たことがあるので、その経験がどれほど不快なものになるか知っています。
dbDelta()
と register_activation_hook()
はここにあなたの友達になります。 プラグインを使ったテーブルの作成 を参照。