Wie protokolliere ich eine SQL-Abfrage der Sammlung?


9

Ich möchte die SQL-Abfrage für eine benutzerdefinierte Sammlung protokollieren. Ich habe den folgenden Code ausprobiert. Hat aber nicht funktioniert. Anregungen werden geschätzt.

Mage::log($collection->getSelect(),null,'test.log',true);

Antworten:


10

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);

12

Probieren Sie $Collection->printLogQuery(true);dies aus, um die Sammlungsabfrage zu drucken.


Vielen Dank. Ihr Code druckt die Abfrage an die Schnittstelle.
— Sukeshini

2

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 beforeLoadMethode viel getan werden kann. Also die erste Antwort:

Mage::log((string)$collection->getSelect(),null,'test.log',true);

sollte verwendet werden, nachdem loadaufgerufen wird.


So erhalten Sie das aktuelle Ereignis und drucken es in die Protokolldatei in Magento 1.9
— Gem

Ich verstehe die Frage nicht. Welche Veranstaltung?
— Fabian Blechschmidt

2

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.


1
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
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.