it-swarm.asia

Eklenti (cron) eylemlerini nasıl kaydederim?

Eklentinizden cron işlemlerini kaydetmenin (başarısız) tavsiye edilen bir yolu var mı? Örneğin, her saat harici bir servisle senkronize olan bir eklentim var. Ne kadar değiştiğini, aynı zamanda senkronizasyon başarısız olduğunda günlüğe kaydetmek istiyorum. Burada ne önerirsiniz? Yeni bir veritabanı tablosu? Log Deprecated Notices plugin bunu özel bir yazı tipiyle yapıyor, ancak bu çok fazla ek yük olabilir mi? İnanıyorum WordPress standart bir kayıt paketi ile gelmiyor ?

6
Jan Fabry
  1. Olayları yazmak içindosyasını kullanın. Burada birkaç dezavantaj var;

    • Dosya sistemi izinleri . Uygulamanızı dağıtırken, web sunucusuna dosyaya yazma izni vermeyi unutmayın. Ekstra bir emin olmak için, dosyaya yazıp yazamayacağınızı kontrol eden ve yazamadığınızda bir uyarı veren kodu yazmanız gerekir. Bu karmaşıklık ekler ve muhtemelen dağıtım sorunlarına neden olabilir.
    • Kazara silme . Özel günlük dosyasını yanlışlıkla silebilir ve kayıtlarınızı kaybedebilirsiniz. Bu uygunsuz olabilir.
    • Özel logformat . Olayları dosyaya yazmak için özel bir (makine tarafından okunabilir?) Metin biçiminde gelmeniz gerekir. Günlük biçimini değiştirmeniz gerektiğinde, eski kayıtları taşımak için uygun bir yol yoktur. Kayıtlar üzerinde bir çeşit analiz yapmak istediğinizde kayıtları ayırmanız gerekir. Bu daha fazla kod ve daha fazla karmaşıklığa yol açar. Karmaşıklık kötüdür.
  2. Bir veritabanı tablosu kullanın. Kendi veritabanı tablonuzu oluşturun ve buradaki etkinlikleri kaydedin. Yukarıda listelenen dezavantajların hiçbiri geçerli değildir. Çok fazla karmaşıklık eklemiyor. Bir eklenti kancası kullanarak tablonun oluşturulmasını ve silinmesini otomatikleştirin ve bence oldukça güvenilir bir kayıt sisteminiz var.

  3. Bir e-posta gönder. Günlüklerin alaka düzeyine bağlı olarak, her zaman bu yöntemi tercih edebilirsiniz. Her halükarda bir arıza durumunda muhtemelen bir e-posta göndermek isteyeceğini düşündüm.

  4. OS kaydediciyi kullanın. PHP'de syslog işlevini kullandığınızda, olayları sistem günlüğüne yazabilirsiniz (Unix'te syslog, Windows NT'de Olay Günlüğü). Kullanıcı tanımlı bir syslog yapılandırmak konuşlandırmayı zorlaştırır.

En sonunda; Normal durumda ve istisnaları mı yoksa sadece istisnaları mı kaydetmek istediğinizi düşünmelisiniz. Jeff Atwood bu konuda iyi bir yazma yaptı.

Bu yardımcı olur umarım!

6
Wietse Venema

this gibi bir günlük işlevi kullanın, böylece wp-config.php dosyanızı here 'ı bulduğum aşağıdaki gibi yapılandırarak logugunuzu debug.log dosyasına yazar.

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

Bu en azından hata ayıklama/geliştirme amacıyla çalışmalıdır (Üretim günlüğü için ne kadar büyük olacağından emin değilim, ancak geliştirme için çalışıyor.)

6
leeand00

Kabul ediyorum, bu verileri wp_posts içine koymak, tablonun yönetilemez bir boyuta hızla büyümesini sağlayabilir. Bir masa oluşturmak iyidir. Ekstra millere gidip birilerini eklentilerini kullanmayı bırakmaları durumunda kayıt masasını temizlemesi için bir yol olarak verirdim.

Tablo oluşturan eklentilerden korkmuyorum, ama belki de 8,000,000 wp_term_relationships kaydı ve 300,000 mesaj içeren WordPress veritabanlarını gördüm ve bu tecrübenin ne kadar nahoş olabileceğini biliyorum.

dbDelta() ve register_activation_hook() , burada arkadaşlarınız olacak. Bkz. Eklenti ile Tablo Oluşturma .

2