Jawaban:
Jika Anda ingin kueri SQL dari koleksi, Anda harus mengubahnya sebagai string. Tambahkan saja (string)
kode logging yang Anda tulis sebelumnya.
Mage::log((string)$collection->getSelect(),null,'test.log',true);
Seperti yang dijelaskan oleh Flyingmana kepada saya, terima kasih padanya.
$collection->load($printQuery = false, $logQuery = false)
Penting untuk mencatat atau mencetak kueri setelah pemuatan, karena dalam beforeLoad
metode ini banyak hal dapat dilakukan. Jadi jawaban pertama:
Mage::log((string)$collection->getSelect(),null,'test.log',true);
harus digunakan SETELAH load
dipanggil.
Langkah 1:
$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);
Langkah 2: Setelah itu Masuk ke bagian admin Magento dan aktifkan pengaturan log. Silahkan lihat di bawah ini .
Sistem> Konfigurasi> Pengembang> Pengaturan Log
Langkah 3: Setelah itu lihat file log "custom_collection.log" di var / log / folder.
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);
Edit:
Daripada menggunakan null
(fallback to DEBUG
) sebagai parameter kedua lebih baik gunakan salah satu dari ini dari 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