Mage :: log () не входить у всі файли, які використовує Magento?


11

Я перезаписані Sitemap.phpв app/code/local/Mage/Sitemap/Model/Sitemap.php. Здається, що файл використовується, якщо я видаляю весь вміст, помилка очікується.

Я скопіював повний вміст стандарту Sitemap.php, однією єдиною зміною. я додав

public function generateXml() {
    Mage::log('test');
    ...
}

Коли я роблю це в іншому місці, він друкує testв , var/log/system.logяк і очікувалося, тільки в цьому файлі, він не реєструє повідомлення.

Будь-яка допомога дуже вдячна


EDIT

використовуючи

Mage::log('text', null, <file>, true);

теж не працює


Чи ввімкнено ведення журналу в конфігурації системи? Є чи var/log/запис вашої веб - користувача ( apache, httpd, www-dataі т.д.)
musicliftsme

реєстрація працює SitemapController.php, так що так, це так. і так var/logможна записати. Дякуємо за ваші ідеї
Yorrd

Можливо, Mage core не завантажений? Можливо, спробуйте Mage :: app ()
Тім Холлмен

@TimHallman як би магенто працював без ядра? Сайт працює просто чудово
Йорда

Тому що це sitemap.php. Спробуйте увійти, app/code/local/Mage/Sitemap/Model/Observer.phpа неSitemap.php
Тім Холлмен

Відповіді:


12

Я б припустив, що файл завантажений, але метод не викликається. Тому просто встановіть точку перерви (або поганий спосіб a die()) у своєму методі та переконайтесь, що вона викликана.

Після ініціалізації magento Mage::logпринаймні з $forceпараметром записує свій журнал


Так. Дякую. Я думаю, я відкрию ще одне питання, чому мій generatorXml не завантажений. Тому що ні, це не досягає точки перелому.
Йорд

29

Використовуйте Mage::log('text here', null, 'system.log', true).
Це повинно працювати весь час.


Або, наприклад, sitemap.log, якщо ви не хочете, щоб ваші журнали мапи змішувалися із випадковими матеріалами.
Жульєн Лашал

@JulienLachal. Правда. Ім'я файлу може бути будь-яким.
Маріус

будь ласка, дивіться мою редагування, це також не працює
Yorrd

2

Ще одна здогадка тут - генерація мапи сайту, як правило, спрацьовує за допомогою кронштейна. Якщо ваш cronjob працює під іншим користувачем, ніж ваш веб-користувач, і не має дозволу писати у ваш існуючий файл system.log, ви не отримаєте жодних записів.


Щоправда, але я тестую це, просто натиснувши кнопку "Створити" на сторінці адміністратора мапи сайту. Тож я припускаю, що він повинен мати дозвіл. EDIT: він також не працює, якщо дозвіл встановлено на 777
Yorrd

0

Надайте потрібний дозвіл вашій var/папці:

chmod -Rv 777 var/

Тому використовуйте такий код нижче:

Mage::log(print_r($yourTest), null, 'customLogFile.log', true);

Print_r запобіжить деякі помилки , пов'язані з типом змінної.


0

Покладіть цей рядок у будь-яку функцію чи файл

Mage :: log ("Ваше повідомлення -", null, 'your-log-filename.log');

цей файл буде створений у вашому внутрішньому шляху, наприклад

/var/log/your-log-filename.log

сподіваюся, що це спрацює для вас.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.