In Magento 1 war es üblich, Protokolle in verschiedene Dateien zu unterteilen (um Protokolle für Zahlungsmethoden usw. zu trennen). Das ist so einfach wie das Ändern der $file
Parameter von Mage::log
.
Magento 2 wurde geändert, um Monolog zu verwenden.
Es scheint, dass Monolog (oder die Implementierung von Magento2) alle Protokolle für das gesamte Framework nach Schweregrad für die Handler segmentiert. Es gibt einige Handler, die in eine Datei schreiben:
\Magento\Framework\Logger\Handler\Debug
, \Magento\Framework\Logger\Handler\Exception
,\Magento\Framework\Logger\Handler\System
Protokollierung in die entsprechenden Dateien in var / log wie in Magento 1.
Ich könnte einen Handler für einen bestimmten Schweregrad hinzufügen (IE, Schreiben von Hinweisen an var/log/notice.log
). Erweitern Sie \Magento\Framework\Logger\Handler\Base
und registrieren Sie den Handler in di.xml
.
In diesem Artikel wird dieser Vorgang grob beschrieben: http://semaphoresoftware.kinja.com/how-to-create-a-custom-log-in-magento-2-1704130912
Aber wie schreibe ich alle Protokolle (nicht nur einen Schweregrad) für eine Klasse (nicht alle von Magento) in eine Datei meiner Wahl?
Es sieht so aus, als müsste ich meine eigene Version von erstellen Magento\Framework\Logger\Monolog
, aber wie passt dann alles zusammen, damit das tatsächlich funktioniert?
Wenn dies in Magento 2 ein großes Nein ist, was ist dann die Alternative? Ich möchte, dass die Protokolle für diese Erweiterung getrennt werden, um sie bei Bedarf auf Clientsites zu debuggen. Es ist nicht praktikabel, diese Informationen in system.log, exception.log usw. zu schreiben und mit den Protokollen aller anderen Module zu verwechseln.