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

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);
Sander Mangel
quelle
12

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

Mufaddal
quelle
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.

Fabian Blechschmidt
quelle
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.

Dharmendra
quelle
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
sv3n
quelle