Protokollierung in Index.php?
-
16-10-2019 - |
Frage
Ich möchte einige Variablen protokollieren, z. $mageRunCode
bevor es trifft:
Mage::run($mageRunCode, $mageRunType);
Anscheinend Mage::log
Und selbst die Zend -Protokollierungsfunktion scheinen sich hier nicht bei einer willkürlichen Dateiausgabe anzumelden. Wie würde man das richtig machen?
Lösung
Ein spezifischer Grund, warum Sie es tun müssen, bevor Mage :: Run in INDEX.PHP genannt wird? Sind Sie besorgt, dass sie sich verändert haben?
Wenn Sie sich an diesem Punkt anmelden, müssen Sie die Kerndatei (index.php) anpassen, was keine gute Praxis ist.
Ein bisschen Fluss:
In Magier :: Run bekommen Sie:
self::$_app->run(array(
'scope_code' => $code,
'scope_type' => $type,
'options' => $options,
));
Die Variablen, an denen Sie interessiert sind, sind zu diesem Zeitpunkt unverändert.
In mage_core_model_app :: Run erhalten Sie diese Codezeile:
Mage::register('application_params', $params);
So speichert Magento -Interna die Parameter, die für Sie in der Registrierung verwendet werden.
Um sie zu protokollieren, können Sie das Ereignis "Controller_Front_init_before" verwenden, das eines der frühesten (verwendbaren) Ereignisse ist.
In diesem Fall können Sie die gespeicherten Parameter ziehen und sie protokollieren.
$params = mage::registry('application_params');
Zu beachten ist, dass dies einen drastischen Overhead auf Ihrer Websites -Leistung platziert, da sich jede Anfrage anmelden würde. Neugierig warum müssten Sie sie protokollieren?
Andere Tipps
Ich gehe davon aus, dass Sie versuchen, Dinge im Entwicklermodus/der lokalen Umgebung zu protokollieren, und Sie möchten herumspielen.
Wenn Sie etwas in Magento bei einer benutzerdefinierten Protokolldatei protokollieren möchten, können Sie verwenden
Mage::log($myVariable, null, 'myVariable.log');
Dazu müssen Sie die Protokollierung im Administrator -Backend aktivieren lassen. Dies wird Sachen auf protokollieren magento_root/var/log/myVariable.log
TIPP: Sie können auch den gesamten Backtrace (für einen anderen tiefgelegten Code) verwenden
Mage::log(Varien_Debug::backtrace(true, true), null, 'backtrace.log');
Der Vorteil des Druckens der gesamten Backtrace besteht darin, dass Sie den genauen Methode/den XML -Fluss sehen, der Ihren Aufruf folgt, um diesen Punkt in der Ausführung und überall innerhalb des PHP -Code zu erreichen. Dies gibt natürlich das Ergebnis zugeben magento_root/var/log/backtrace.log