Mage :: log () nie loguje się we wszystkich plikach używanych przez Magento?


11

Mam nadpisane Sitemap.phpw 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 testsię var/log/system.logzgodnie 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


Czy rejestrowanie jest włączone w konfiguracji systemu? Jest var/log/zapisywalny przez użytkownika stron internetowych ( apache, httpd, www-data, etc.)
musicliftsme

logowanie działa SitemapController.php, więc tak jest. i tak var/logjest zapisywalny. Dziękuję za twoje pomysły
Yorrd

Być może rdzeń Maga nie jest załadowany? Może spróbuj Mage :: app ()
Tim Hallman

@ TimHallman jak magento działałoby bez rdzenia? Witryna działa dobrze
Yorrd

Ponieważ jest to sitemap.php. Spróbuj się zalogować app/code/local/Mage/Sitemap/Model/Observer.phpzamiastSitemap.php
Tim Hallman,

Odpowiedzi:


12

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::logprzynajmniej z $forceparametrem zapisuje swój log


Tak. Dzięki. Chyba otworzę kolejne pytanie, dlaczego mój generatorXml nie jest załadowany. Ponieważ nie, nie osiąga punktu przerwania.
Yorrd

29

Zastosowanie Mage::log('text here', null, 'system.log', true).
To powinno działać cały czas.


Lub na przykład sitemap.log na wypadek, gdybyś nie chciał, aby logi map witryn były pomieszane z przypadkowymi danymi.
Julien Lachal

@JulienLachal. Prawdziwe. Nazwa pliku może być dowolna.
Marius

proszę zobaczyć moją edycję, to też nie działa
Yorrd

2

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.


To prawda, ale testuję to, klikając „generuj” na stronie administratora mapy witryny. Zakładam, że powinien mieć pozwolenie. EDYCJA: to również nie działa, jeśli zezwolenie jest ustawione na 777
Yorrd

0

Nadaj odpowiednie pozwolenie var/folderowi:

chmod -Rv 777 var/

Użyj więc tego kodu poniżej:

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

Print_r uniemożliwi pewne błędy związane z typem zmiennej.


0

Umieść tę linię w dowolnej funkcji lub pliku

Mage :: log („Your message -”, null, 'your-log-filename.log');

ten plik zostanie utworzony w Twojej ścieżce folderu głównego, jak

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

mam nadzieję, że to zadziała.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.