it-swarm-id.com

Bagaimana cara mencatat tindakan plugin (cron)?

Apakah ada cara yang disarankan untuk mencatat (gagal) tindakan cron dari plugin Anda? Misalnya, saya memiliki plugin yang disinkronkan dengan layanan eksternal setiap jam. Saya ingin mencatat berapa banyak yang diubah, tetapi juga ketika sinkronisasi gagal. Apa yang akan Anda rekomendasikan di sini? Tabel database baru? Plugin Log Notified Usang plugin melakukan ini dengan jenis posting kustom, tetapi ini mungkin terlalu banyak overhead? Saya percaya WordPress tidak disertai dengan paket logging standar ?

6
Jan Fabry
  1. Gunakan fileuntuk menulis acara. Ada beberapa kekurangan di sini;

    • Izin Filesystem . Ketika Anda menggunakan aplikasi Anda, Anda harus berhati-hati untuk mengingat untuk memberikan izin server web untuk menulis ke file. Dan untuk lebih yakin, Anda harus menulis kode yang memeriksa apakah Anda dapat menulis ke file dan mengeluarkan peringatan ketika Anda tidak bisa. Ini menambah kompleksitas dan kemungkinan menjadi penyebab masalah penyebaran.
    • Penghapusan tidak disengaja . Anda dapat secara tidak sengaja menghapus file log kustom dan kehilangan catatan Anda. Ini mungkin tidak nyaman.
    • Custom logformat . Anda harus membuat format teks khusus (dapat dibaca mesin?) Untuk menulis acara ke file Anda. Saat Anda harus mengubah format log, tidak ada cara mudah untuk melakukan migrasi catatan lama. Saat Anda ingin melakukan semacam analisis pada log, Anda harus mengurai catatan. Ini mengarah pada lebih banyak kode dan lebih banyak kerumitan. Kompleksitas itu buruk.
  2. Gunakan tabel database. Buat tabel database Anda sendiri dan catat peristiwa di sana. Tidak satu pun dari kekurangan yang tercantum di atas berlaku. Itu tidak menambah banyak kerumitan. Mengotomatiskan pembuatan dan penghapusan tabel menggunakan pengait plugin dan Anda memiliki sistem log yang cukup andal.

  3. Kirim email. Bergantung pada relevansi log, Anda selalu bisa memilih metode ini. Saya kira Anda mungkin ingin mengirim e-mail jika terjadi kegagalan.

  4. Gunakan logger OS. Saat Anda menggunakan fungsi syslog di PHP, Anda dapat menulis acara ke logger sistem (syslog pada Unix, Log Kejadian pada Windows NT). Mengkonfigurasi syslog yang ditentukan pengguna mempersulit penerapan.

Akhirnya; Anda harus mempertimbangkan jika Anda ingin mencatat perkara normal dan pengecualian, atau hanya pengecualian. Jeff Atwood melakukan Langgan tentang hal ini.

Semoga ini membantu!

6
Wietse Venema

Gunakan fungsi logging seperti this , sehingga ia menulis log Anda ke debug.log dengan mengkonfigurasi wp-config.php Anda dengan yang berikut ini yang saya temukan di sini :

/**
 * 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);

Setidaknya ini harus berfungsi untuk keperluan debugging/pengembangan (saya tidak yakin seberapa bagus untuk logging produksi, tetapi berfungsi untuk pengembangan.)

6
leeand00

Saya setuju, memasukkan data ini dalam wp_posts berpotensi dapat membuat tabel tumbuh dengan cepat ke ukuran yang tidak dapat dikelola. Tidak masalah untuk membuat tabel. Saya akan berusaha lebih keras dan memberi seseorang cara untuk membersihkan tabel log jika mereka berhenti menggunakan plugin mereka.

Saya tidak takut dengan plugin yang membuat tabel, tapi mungkin itu karena saya telah melihat database WordPress dengan 8.000.000 wp_term_relationships catatan dan 300.000 posting dan saya tahu betapa tidak menyenangkannya pengalaman itu.

dbDelta() dan register_activation_hook() akan menjadi teman Anda, di sini. Lihat Membuat Tabel dengan Plugin .

2