Magento 1.9.x – problem z logowaniem do pliku

Każdy dzień w życiu developera to jakiś mniejszy bądź większy fuckup. Każdego dnia coś trzeba sprawdzić i ustalić. Dziś zmagałam się z nielogującymi się informacjami, które wcześniej logowały się poprawnie.

Powód okazał się bardziej banalny, niż mogłoby się wydawać. Jakiś czas temu wgrywałam patch bezpieczeństwa SUPEE-10415. dokonał on zmiany w metodzie Mage::log(), zmieniając linię

$file = empty($file) ? 'system.log' : $file;

na:

$file = empty($file) ? 'system.log' : basename($file);

W efekcie pliki nie zapisywały się w wyznaczonej lokalizacji a w głównym katalogu var/log

Problem został zaobserwowany, ponieważ pliki z wyznaczonej lokalizacji wczytywane były do grida w panelu administracyjnym i nagle przestały być dostępne.

Zatem jeśli nie możesz zalogować pliku do określonej lokalizacji wystarczy pozbyć się funkcji basename() nadpisując metodę Mage::log().

Prawdą jest, że użycie funkcji basename() jest poprawką bezpieczeństwa, jednak jeśli bardzo zależy Ci by logi mimo wszystko znajdowały się w różnych katalogach z uwagi na ich ilość lub inne powody, to powyższa sugestia najszybciej rozwiąże ten problem.