نظام Magento وسجل الاستثناءات لا يعملان
-
12-12-2019 - |
سؤال
لقد استنفدت كل الحيل في كتابي.لن يقوم Magento بتسجيل أي شيء على الإطلاق، ولتصحيح الأخطاء، قمت بإدخال مكالمتين لتسجيل الدخول index.php
if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
Mage::setIsDeveloperMode(true);
Mage::log("WOOOOPIE");
error_log("Go sell your fur");
}
- يعمل php error_log ويسجل إلى /var/log/Apache2/error.log
- {{Magento dir}}/var/log/system.log وexception.log فارغان.
- في لوحة الإدارة، ضمن التكوين > المطور، قمت بتمكين ملف التعريف وتسجيل الأخطاء.
- الدليل var بأكمله مملوك لـ www-data وchmod'ed 777، لقد قمت بفحصه
ps aux
و envvars لتأكيد تشغيل Apache كـ www-data. - تم مسح كافة ذاكرات التخزين المؤقت بشكل متكرر، ثم تم تعطيلها.
- يحتوي ملف Index.php على الإعداد الافتراضي
error_reporting(E_ALL | E_STRICT);
تعيين.
وهنا أذونات system.log، اضطررت إلى ذلك touch
بنفسي.
namei -ml /var/www/nslocal/var/log/system.log`
f: /var/www/nslocal/var/log/system.log
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxrwxr-x root www-data www
drwxrwxr-x www-data ci nslocal
drwxrwxrwx www-data ci var
drwxrwxrwx www-data ci log
-rwxrwxrwx www-data ci system.log
لقد حاولت حتى إعادة التشغيل.بدون عمل السجل، لا يمكنني تصحيح سبب عدم قيام Magento بإرسال رسائل البريد الإلكتروني، على الرغم من عمل php وsendmail بشكل صحيح.هل لدي شبح؟
المحلول
مما أفهمه، لن يعمل برنامج Mage logger في وقت مبكر جدًا من تشغيل التطبيق.
إذا نظرت إلى وظيفة Mage::log نفسها، ستجد:
if (!self::getConfig()) {
return;
}
بما أن Mage::getConfig() سترجع قيمة فارغة حتى تتم تهيئة تكوين التطبيق لاحقًا داخل الدالة Mage::run()، ستخرج الدالة Mage::log دون القيام بأي شيء عند استدعائها من ملف Index.php.
لاختبار عمل التسجيل بالفعل، حاول إجراء الاختبار لاحقًا، ربما في Mage_Core_Controller_Varien_Front::dispatch الذي يناسبني.