Antworten:
Wenn Sie die SQL-Abfrage aus einer Sammlung möchten, müssen Sie sie als Zeichenfolge umwandeln. Fügen (string)
Sie einfach Ihren zuvor geschriebenen Protokollierungscode hinzu.
Mage::log((string)$collection->getSelect(),null,'test.log',true);
Wie Flyingmana mir dank ihm erklärte.
$collection->load($printQuery = false, $logQuery = false)
Es ist wichtig, die Abfrage nach dem Laden zu protokollieren oder zu drucken, da in der beforeLoad
Methode viel getan werden kann. Also die erste Antwort:
Mage::log((string)$collection->getSelect(),null,'test.log',true);
sollte verwendet werden, nachdem load
aufgerufen wird.
Schritt 1:
$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);
Schritt 2: Melden Sie sich danach im Magento-Administratorbereich an und aktivieren Sie die Protokolleinstellung. Siehe unten .
System> Konfiguration> Entwickler> Protokolleinstellungen
Schritt 3: Danach sehen Sie die Protokolldatei "custom_collection.log" in var / log / folder.
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);
Bearbeiten:
Anstatt null
(Fallback to DEBUG
) als zweiten Parameter zu verwenden, verwenden Sie besser einen der folgenden Parameter Zend_Log
:
const EMERG = 0; // Emergency: system is unusable
const ALERT = 1; // Alert: action must be taken immediately
const CRIT = 2; // Critical: critical conditions
const ERR = 3; // Error: error conditions
const WARN = 4; // Warning: warning conditions
const NOTICE = 5; // Notice: normal but significant condition
const INFO = 6; // Informational: informational messages
const DEBUG = 7; // Debug: debug messages