Mage :: log () meldet nicht alle von Magento verwendeten Dateien an?

11

Ich habe überschrieben Sitemap.phpin app/code/local/Mage/Sitemap/Model/Sitemap.php. Die Datei scheint verwendet zu werden. Wenn ich alle Inhalte entferne, liegt erwartungsgemäß ein Fehler vor.

Ich habe den gesamten Inhalt des Standards Sitemap.phpmit einer einzigen Änderung kopiert . Ich fügte hinzu

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

Wenn ich dies tun anderswo, druckt es testin var/log/system.logwie erwartet, nur in dieser Datei, es die Nachricht nicht anmelden.

Jede Hilfe wird sehr geschätzt


BEARBEITEN

mit

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

geht auch nicht

Yorrd
quelle
Ist die Protokollierung in der Systemkonfiguration aktiviert? Ist var/log/beschreibbar durch Ihren Web - Benutzer ( apache, httpd, www-data, etc.)
musicliftsme
Die Anmeldung funktioniert SitemapController.php, also ja. und ja var/logist beschreibbar. Vielen Dank für Ihre Ideen
Yorrd
Vielleicht ist der Magierkern nicht geladen? Vielleicht versuchen Sie es mit Mage :: app ()
Tim Hallman
@ TimHallman Wie würde Magento ohne Core funktionieren? Die Seite funktioniert gut
Yorrd
Weil es sitemap.php ist. Versuchen Sie, sich einzuloggen, app/code/local/Mage/Sitemap/Model/Observer.phpanstattSitemap.php
Tim Hallman

Antworten:

11

Ich würde annehmen, die Datei ist geladen, aber die Methode wird nicht aufgerufen. Setzen Sie einfach einen Haltepunkt (oder einen schlechten Weg a die()) in Ihre Methode und stellen Sie sicher, dass er aufgerufen wird.

Nachdem Magento initialisiert wurde, schreibt Mage::logzumindest der $forceParameter sein Protokoll

Fabian Blechschmidt
quelle
Ja. Vielen Dank. Ich denke, ich werde eine weitere Frage öffnen, warum meine generateXml nicht geladen ist. Weil nein, es erreicht den Haltepunkt nicht.
Yorrd
28

Verwenden Sie Mage::log('text here', null, 'system.log', true).
Das sollte die ganze Zeit funktionieren.

Marius
quelle
Oder zum Beispiel eine sitemap.log, falls Sie nicht möchten, dass Ihre Sitemap-Protokolle mit zufälligen Dingen gemischt werden.
Julien Lachal
@ JulienLachal. Wahr. Der Dateiname kann alles sein.
Marius
Bitte sehen Sie meine Bearbeitung, dies funktioniert auch nicht
Yorrd
2

Eine andere Vermutung hier - die Sitemap-Generierung wird im Allgemeinen durch einen Cronjob ausgelöst. Wenn Ihr Cronjob unter einem anderen Benutzer als Ihrem Webbenutzer ausgeführt wird und nicht über die Berechtigung zum Schreiben in Ihre vorhandene system.log-Datei verfügt, werden keine Einträge angezeigt.

Kristof bei Fooman
quelle
Stimmt, aber ich teste es, indem ich auf der Sitemap-Administrationsseite einfach auf "Generieren" klicke. Also würde ich annehmen, dass er die Erlaubnis haben sollte. BEARBEITEN: es funktioniert auch nicht, wenn die Erlaubnis auf 777
Yorrd
0

Geben Sie Ihrem var/Ordner die richtige Erlaubnis :

chmod -Rv 777 var/

Verwenden Sie also den folgenden Code:

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

Mit print_r werden einige Fehler im Zusammenhang mit dem Typ Ihrer Variablen vermieden .

Rafael Corrêa Gomes
quelle
0

Fügen Sie diese Zeile in eine beliebige Funktion oder Datei ein

Mage :: log ("Ihre Nachricht -", null, 'your-log-filename.log');

Diese Datei wird wie folgt in Ihrem Stammordner erstellt

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

hoffe es wird für dich funktionieren.

Sarfaraj Sipai
quelle