Bagaimana cara log query SQL koleksi?


9

Saya ingin mencatat permintaan SQL untuk koleksi kustom. Saya mencoba kode berikut. Tetapi tidak berhasil. Setiap saran akan dihargai.

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

Jawaban:


10

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

12

Coba $Collection->printLogQuery(true);ini akan mencetak kueri koleksi.


Terima kasih banyak. Kode Anda mencetak kueri ke antarmuka.
Sukeshini

2

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 beforeLoadmetode ini banyak hal dapat dilakukan. Jadi jawaban pertama:

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

harus digunakan SETELAH loaddipanggil.


Cara mendapatkan acara terkini dan mencetak ke dalam file log di Magento 1.9
Gem

Saya tidak mendapatkan pertanyaan. Acara apa?
Fabian Blechschmidt

2

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.


1
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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.