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?

War es hilfreich?

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?

Frühestes nutzbares Ereignis

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top