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


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


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.


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.


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 .


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.