Mam nadpisane Sitemap.php
w app/code/local/Mage/Sitemap/Model/Sitemap.php
. Plik wydaje się być używany, jeśli usunę całą zawartość, pojawi się błąd zgodnie z oczekiwaniami.
Skopiowałem całą treść standardu Sitemap.php
, z jedną zmianą. dodałem
public function generateXml() {
Mage::log('test');
...
}
Kiedy to zrobić gdziekolwiek indziej, drukuje test
się var/log/system.log
zgodnie z oczekiwaniami, tylko w tym pliku, to nie rejestruje komunikat.
Każda pomoc jest mile widziana
EDYTOWAĆ
za pomocą
Mage::log('text', null, <file>, true);
też nie działa
var/log/
zapisywalny przez użytkownika stron internetowych (apache
,httpd
,www-data
, etc.)SitemapController.php
, więc tak jest. i takvar/log
jest zapisywalny. Dziękuję za twoje pomysłyapp/code/local/Mage/Sitemap/Model/Observer.php
zamiastSitemap.php
Odpowiedzi:
Zakładam, że plik jest ładowany, ale metoda nie jest wywoływana. Więc po prostu ustaw punkt przerwania (lub zły sposób a
die()
) w swojej metodzie i upewnij się, że jest on wywoływany.Po zainicjowaniu magento
Mage::log
przynajmniej z$force
parametrem zapisuje swój logźródło
Zastosowanie
Mage::log('text here', null, 'system.log', true)
.To powinno działać cały czas.
źródło
Kolejne przypuszczenie - generowanie mapy witryny jest generalnie uruchamiane przez cronjob. Jeśli twój cronjob działa pod innym użytkownikiem niż twój użytkownik i nie masz uprawnień do zapisu w istniejącym pliku system.log, nie dostaniesz żadnych wpisów.
źródło
Nadaj odpowiednie pozwolenie
var/
folderowi:Użyj więc tego kodu poniżej:
źródło
Umieść tę linię w dowolnej funkcji lub pliku
ten plik zostanie utworzony w Twojej ścieżce folderu głównego, jak
mam nadzieję, że to zadziała.
źródło