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.