Koleksiyonun SQL sorgusu nasıl kaydedilir?


9

Özel bir koleksiyon için SQL sorgusu günlüğe kaydetmek istiyorum. Aşağıdaki kodu denedim. Ama işe yaramadı. Herhangi bir öneriniz takdir edilecektir.

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

Yanıtlar:


10

SQL sorgusu bir koleksiyondan istiyorsanız dize olarak yayınlamanız gerekir. (string)Önceden yazdığınız kayıt kodunu eklemeniz yeterlidir.

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

12

$Collection->printLogQuery(true);Bu toplama sorgusu yazdırmak deneyin .


Çok teşekkür ederim. Kodunuz sorguyu arabirime yazdırır.
Sukeshini

2

Flyingmana bana açıkladığı gibi, onun sayesinde.

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

Yüklemeden sonra sorguyu günlüğe kaydetmek veya yazdırmak önemlidir, çünkü beforeLoadyöntemde çok şey yapılabilir. İlk cevap:

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

SONRA kullanılmalıdır load.


Güncel olay nasıl alınır ve Magento
Gem

Soruyu anlamıyorum. Ne olayı?
Fabian Blechschmidt

2

Aşama 1:

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

Adım 2: Bundan sonra Magento admin bölümünde oturum açın ve günlük ayarını etkinleştirin. Lütfen aşağıya bakın .

Sistem> Yapılandırma> Geliştirici> Günlük Ayarları

Adım 3: Bundan sonra var / log / klasöründeki “custom_collection.log” günlük dosyasına bakın.


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

Düzenle:

İkinci parametre olarak null(geri dönüş DEBUG) kullanmak yerine aşağıdakilerden birini daha iyi kullanın 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.