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как и ожидалось, только в этом файле, он не регистрирует сообщение.

Любая помощь с благодарностью


РЕДАКТИРОВАТЬ

с помощью

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

тоже не работает


Включено ли ведение журнала в конфигурации системы? Является ли var/log/запись вашей веб - пользователя ( apache, httpd, www-dataи т.д.)
musicliftsme

регистрация работает SitemapController.php, так что да, это так. и да var/logдоступно для записи. Спасибо за ваши идеи
Йорд

Возможно, ядро ​​Мага не загружено? Может быть, попробовать Mage :: app ()
Тим Холлман

@TimHallman, как бы magento работал без ядра? Сайт работает просто отлично
Йорд

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

Ответы:


11

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

После инициализации magento Mage::logхотя бы с $forceпараметром пишет свой лог


Да. Спасибо. Я думаю, я открою еще один вопрос, почему мой generateXml не загружается. Потому что нет, оно не достигает точки останова.
Йорд

29

Использование Mage::log('text here', null, 'system.log', true).
Это должно работать все время.


Или, например, sitemap.log, если вы не хотите, чтобы журналы вашего сайта смешивались со случайными вещами.
Жюльен Лахаль

@JulienLachal. Правда. Имя файла может быть любым.
Мариус

пожалуйста, смотрите мое редактирование, это тоже не работает
Йорд

2

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


Правда, но я проверяю это, просто нажимая «создать» на странице администратора карты сайта. Так что я предполагаю, что у него должно быть разрешение. РЕДАКТИРОВАТЬ: это не работает, если разрешение установлено на 777
Йорд

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.