2012-08-23 2 views
5

API çağrıları için günlüğe kaydetmeyi etkinleştirmenin herhangi bir yolu var mı?Magento API Günlükleri

Mağazamızla çalışmakta sorun yaşayan ve hata ayıklama bilgilerini almak isteyen üçüncü taraf bir uygulamamız var. ~ Bt aradım hiçbir şey bulunamadı. Bu tarafından

System -> Configuration -> Developer -> Debug -> Profiler -> Yes 

için simliar ayarı bazı basit arka uç kastınız, 1.7

+0

Magento geliştiricisinin geçici olarak, kolaylık için app/code/core/Mage/Api/Model/Sunucu/İşleyici/Soyut.php –

+0

işlevini 'yeniden' yazmasını isteyin yol: http://ka.lpe.sh/2014/06/22/m agento-enable-logs-on-api-çağrıları/ – Kalpesh

cevap

0

kullanıyorum

, o zaman hiç Magento OOB'de böyle bir özellik yok.

PHP hata ayıklayıcısını kullanmanızı öneririm ve API aracılığıyla 3. taraf uygulama çağrılarını çağırır. Ya da geçici olarakçağrılarını veya Mage::log() çağrılarını geçici olarak ekleyerek, ilgili aramanın verilerini kaydederek var/system.log neyin yanlış gittiğini kontrol edebilirsiniz.

+0

Mage :: log() öğesini çağırırsanız, API ile bir Eylem oluşturmak arasındaki fark nedir? –

+0

@JosuaMarcelChrisano - Korkarım seni takip edemem üzgünüm. 'Mage :: log()', günlük dosyasına veri kaydetmek için kullanılan statik bir yöntemdir. Sadece bir eylemin içinden mi yoksa bir API yönteminden mi çektiğinize bakılmaksızın oturum açar ve çaba aynıdır. –

1

Gerçekten iyi bir çözüm, bir API proxy kullanmaktır. Göründüğü kadar karmaşık değil. Bu, API çağrılarınızı normal API URL'si yerine işaret ettiğiniz bir PHP betiğidir. Fikir, her gelen API isteğini normal magento API'sine geçirmeden önce günlüğe kaydetmesidir. Ayrıca, yanıtları istemciye geri göndermeden önce günlüğe kaydeder.

Birçok API sorununu teşhis etmek için geçmişte kullanmış olduğum bir hazır kurulum var. kontrollü bir zaman dönemi için http://techcolin.net/2011/11/a-php-proxy-script-for-logging-magento-api-soap-calls/

7

bunu gibi index.php işleyebilirsiniz:

ob_start(); 
Mage::run($mageRunCode, $mageRunType); 

if(preg_match('/api/', $_SERVER['REQUEST_URI'])) { 
     Mage::log('<<< request '.$_SERVER['REQUEST_METHOD'].': '.$_SERVER['REQUEST_URI'], null, 'api.log'); 
     if($_SERVER['REQUEST_METHOD'] == 'POST') { 
       Mage::log('<<< '.file_get_contents('php://input'), null, 'api.log'); 
     } 
     Mage::log('>>> '.ob_get_contents(), null, 'api.log'); 
} 

ob_end_flush(); 
:

:: çalışma çağrısı etrafında index.php sonunda bu kodu koymak

hızlı ve kirli ama adhoc hata ayıklama için