จะบันทึกการสืบค้น SQL ของการรวบรวมได้อย่างไร?


9

ฉันต้องการบันทึกแบบสอบถาม SQL สำหรับคอลเลกชันที่กำหนดเอง ฉันลองรหัสต่อไปนี้ แต่ไม่ได้ผล ข้อเสนอแนะใด ๆ จะได้รับการชื่นชม

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

คำตอบ:


10

ถ้าคุณต้องการคิวรี่ SQL จากคอลเลกชันคุณต้องแปลงมันเป็นสตริง เพียงเพิ่ม(string)รหัสการบันทึกก่อนหน้านี้ของคุณ

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

12

ลองใช้$Collection->printLogQuery(true);วิธีนี้จะพิมพ์ข้อความค้นหาคอลเลกชัน


ขอบคุณมาก. รหัสของคุณพิมพ์แบบสอบถามไปยังอินเทอร์เฟซ
Sukeshini

2

อย่างที่ Flyingmana อธิบายให้ฉันขอบคุณเขา

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

มันเป็นสิ่งสำคัญที่จะเข้าสู่ระบบหรือพิมพ์แบบสอบถามหลังจากการโหลดเพราะในbeforeLoadวิธีการที่สามารถทำได้หลายสิ่ง ดังนั้นคำตอบแรก:

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

ควรใช้หลังจากloadเรียกว่า


วิธีรับเหตุการณ์ปัจจุบันและพิมพ์ลงใน logfile ใน Magento 1.9
Gem

ฉันไม่ได้รับคำถาม เหตุการณ์อะไร
Fabian Blechschmidt

2

ขั้นตอนที่ 1:

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

ขั้นตอนที่ 2:หลังจากนั้นเข้าสู่ส่วนผู้ดูแลระบบวีโอไอพีและเปิดใช้งานการตั้งค่าการเข้าสู่ระบบ โปรดดูที่ด้านล่าง .

ระบบ> การกำหนดค่า> ผู้พัฒนา> การตั้งค่าบันทึก

ขั้นตอนที่ 3:หลังจากนั้นดูล็อกไฟล์“ custom_collection.log” ใน var / log / folder


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

แก้ไข:

แทนที่จะใช้null(ย้อนกลับถึงDEBUG) เป็นพารามิเตอร์ตัวที่สองควรใช้สิ่งเหล่านี้จาก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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.