it-swarm.asia

كيف يمكنني تسجيل إجراءات البرنامج المساعد (cron)؟

هل هناك طريقة موصى بها لتسجيل (فشل) إجراءات cron من البرنامج المساعد الخاص بك؟ على سبيل المثال ، لدي مكون إضافي يتزامن مع خدمة خارجية كل ساعة. أريد تسجيل مقدار التغيير ، ولكن أيضًا عند فشل المزامنة. ماذا تنصح هنا؟ جدول قاعدة بيانات جديد؟ إشعارات السجل المهملة المساعد تفعل ذلك بنوع منشور مخصص ، لكن قد يكون هذا كثيرًا جدًا؟ أعتقد لا يأتي WordPress مع حزمة تسجيل قياسية ؟

6
Jan Fabry
  1. استخدم ملفلكتابة الأحداث إلى. هناك العديد من العيوب هنا ؛

    • أذونات نظام الملفات . عندما تقوم بنشر تطبيقك ، يجب عليك أن تتذكر أن تعطي خادم الويب إذنًا بالكتابة إلى الملف. وللتأكد من ذلك ، يجب عليك كتابة التعليمات البرمجية التي تحقق ما إذا كان يمكنك الكتابة إلى الملف وإصدار تحذير عندما لا تستطيع ذلك. هذا يضيف التعقيد ومن المحتمل أن يكون سببا لمشاكل النشر.
    • الحذف العرضي . يمكنك حذف ملف السجل المخصص بطريق الخطأ وفقدان سجلاتك. هذا قد يكون غير مريح.
    • logformat مخصص . يجب أن تأتي بتنسيق نص مخصص (يمكن قراءته آلياً؟) لكتابة الأحداث إلى ملفك. عندما يتعين عليك تغيير تنسيق السجل ، لا توجد طريقة مناسبة لترحيل السجلات القديمة. عندما تريد إجراء نوع من التحليل على السجلات ، فيجب عليك تحليل السجلات. هذا يؤدي إلى المزيد من التعليمات البرمجية والمزيد من التعقيد. التعقيد سيء.
  2. استخدم جدول قاعدة البيانات. إنشاء جدول قاعدة البيانات الخاصة بك وتسجيل الأحداث هناك. لا شيء من العيوب المذكورة أعلاه تنطبق. لا تضيف الكثير من التعقيد. أتمتة إنشاء وحذف الجدول باستخدام ربط البرنامج المساعد ولديك نظام سجل موثوق بشكل معقول على ما أعتقد.

  3. إرسال بريد إلكتروني. اعتمادًا على أهمية السجلات ، يمكنك دائمًا اختيار هذه الطريقة. أعتقد أنك قد ترغب في إرسال بريد إلكتروني في حالة حدوث أي عطل على أي حال.

  4. استخدم مسجِّل OS. عند استخدام syslog الوظيفة في PHP ، يمكنك كتابة الأحداث إلى مسجل النظام (syslog على Unix ، سجل الأحداث على Windows NT). تكوين مستخدم المعرفة syslog يعقد النشر.

أخيرا؛ يجب عليك مراعاة ما إذا كنت تريد تسجيل الحالة العادية و الاستثناءات ، أو الاستثناءات فقط. جيف اتوود قام بعمل جيد كتابة حول هذا الموضوع.

أتمنى أن يساعدك هذا!

6
Wietse Venema

استخدم وظيفة تسجيل مثل this ، بحيث تكتب تسجيل الخروج الخاص بك إلى debug.log من خلال تكوين wp-config.php الخاص بك مع ما يلي وجدت هنا :

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

يجب أن يعمل هذا لأغراض تصحيح الأخطاء/التطوير على الأقل (لست متأكدًا من حجم تسجيل الإنتاج ، ولكنه يعمل من أجل التطوير.)

6
leeand00

أوافق على أن وضع هذه البيانات في wp_posts يحتمل أن يجعل الجدول ينمو بسرعة إلى حجم لا يمكن التحكم فيه. لا بأس في إنشاء جدول. سأذهب إلى الميل الإضافي ومنح شخص ما طريقة لتنظيف جدول السجل في حال توقفهم عن استخدام البرنامج المساعد.

لست خائفًا من المكونات الإضافية التي تنشئ الجداول ، ولكن ربما هذا لأنني رأيت قواعد بيانات WordPress التي تحتوي على 8000000 من سجلات wp_term_relationships و 300000 منشورًا وأعرف مدى عدم روعة هذه التجربة.

dbDelta() و register_activation_hook() سيكونان أصدقاءك ، هنا. انظر إنشاء الجداول مع الإضافات .

2
Annika Backstrom