Como registrar a consulta SQL da coleção?

9

Quero registrar a consulta SQL para uma coleção personalizada. Eu tentei o seguinte código. Mas não funcionou. Todas as sugestões serão apreciadas.

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

Respostas:

10

Se você quiser a consulta SQL de uma coleção, precisará convertê-la como sequência. Basta adicionar (string)ao seu código de log escrito anteriormente.

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

Experimente $Collection->printLogQuery(true);isso imprimirá a consulta de coleção.

Mufaddal
fonte
Muito obrigado. Seu código imprime a consulta na interface.
Sukeshini 26/09
2

Como Flyingmana me explicou, graças a ele.

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

É importante registrar ou imprimir a consulta após o carregamento, porque no beforeLoadmétodo muita coisa pode ser feita. Então a primeira resposta:

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

deve ser usado DEPOIS de loadser chamado.

Fabian Blechschmidt
fonte
Como obter o evento atual e imprimir no arquivo de log no Magento 1.9
Gem
Eu não entendi a pergunta. Que evento?
Fabian Blechschmidt
2

Passo 1:

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

Etapa 2: Depois disso, entre na seção de administração do Magento e ative a configuração de log. Por favor veja abaixo .

Sistema> Configuração> Desenvolvedor> Configurações de Log

Etapa 3: depois disso, consulte o arquivo de log “custom_collection.log” na pasta var / log /.

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

Editar:

Em vez de usar null(fallback para DEBUG) como segundo parâmetro, use melhor um destes 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
fonte