¿Cómo registrar la consulta SQL de la colección?

9

Quiero registrar la consulta SQL para una colección personalizada. Intenté el siguiente código. Pero no funcionó. Cualquier sugerencia será apreciada.

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

Respuestas:

10

Si desea la consulta SQL de una colección, debe convertirla como una cadena. Simplemente agregue (string)a su código de registro previamente escrito.

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

Pruebe $Collection->printLogQuery(true);esto imprimirá la consulta de colección.

Mufaddal
fuente
Muchas gracias. Su código imprime la consulta a la interfaz.
Sukeshini
2

Como Flyingmana me explicó, gracias a él.

$collection->load($printQuery = false, $logQuery = false)

Es importante registrar o imprimir la consulta después de la carga, porque en el beforeLoadmétodo se pueden hacer muchas cosas. Entonces la primera respuesta:

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

debe usarse DESPUÉS de que loadse llame.

Fabian Blechschmidt
fuente
Cómo obtener el evento actual e imprimir en el archivo de registro en Magento 1.9
Gema
No entiendo la pregunta. ¿Que evento?
Fabian Blechschmidt
2

Paso 1:

$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);

Paso 2: Después de eso, inicie sesión en la sección de administración de Magento y habilite la configuración de registro. Por favor ver más abajo .

Sistema> Configuración> Desarrollador> Configuración de registro

Paso 3: Después de eso, vea el archivo de registro "custom_collection.log" en la carpeta var / log /.

Dharmendra
fuente
1
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);

Editar:

En lugar de usar null( recurrir a DEBUG) como segundo parámetro, mejor use uno de estos de 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
fuente