Comment enregistrer la requête SQL de la collection?

9

Je souhaite enregistrer la requête SQL pour une collection personnalisée. J'ai essayé le code suivant. Mais n'a pas fonctionné. Toute suggestion sera appréciée.

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

Réponses:

10

Si vous voulez la requête SQL d'une collection, vous devez la convertir en chaîne. Ajoutez simplement (string)à votre code d'enregistrement précédemment écrit.

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

Essayez $Collection->printLogQuery(true);ceci imprimera la requête de collection.

Mufaddal
la source
Merci beaucoup. Votre code imprime la requête sur l'interface.
Sukeshini
2

Comme Flyingmana me l'a expliqué, merci à lui.

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

Il est important de consigner ou d'imprimer la requête après le chargement, car dans la beforeLoadméthode, beaucoup de choses peuvent être faites. Donc la première réponse:

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

doit être utilisé APRÈS avoir loadété appelé.

Fabian Blechschmidt
la source
Comment obtenir l'événement en cours et l'imprimer dans le fichier journal dans Magento 1.9
Gem
Je ne comprends pas la question. Quel évènement?
Fabian Blechschmidt
2

Étape 1:

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

Étape 2: Après cette connexion à la section d'administration de Magento et activez le paramètre de connexion. Veuillez voir ci-dessous.

Système> Configuration> Développeur> Paramètres de journal

Étape 3: Après cela, consultez le fichier journal «custom_collection.log» dans le dossier var / log /.

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

Éditer:

Au lieu d'utiliser null(repli vers DEBUG) comme deuxième paramètre, mieux utiliser l'un d'entre eux à partir 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
la source