2012-08-23 13 views
5

क्या एपीआई कॉल के लिए लॉगिंग चालू करने का कोई तरीका है?Magento API लॉग

हमारे पास एक तृतीय पक्ष एप्लिकेशन है जिसमें हमारे स्टोर के साथ काम करने में परेशानी हो रही है और कुछ डीबगिंग जानकारी प्राप्त करना चाहती है। ~ मैंने कुछ भी नहीं पाया बीटी खोजा है।

मैं 1.7

+0

अमेज़ॅन उद्देश्य के लिए ऐप/कोड/कोर/मैगे/एपीआई/मॉडल/सर्वर/हैंडलर/एब्स्ट्रेट/एफपी –

+0

पर फ़ंक्शन 'कॉल' को फिर से लिखने के लिए Magento डेवलपर से पूछें रास्ता: http://ka.lpe.sh/2014/06/22/m एजेंटो-सक्षम-लॉग-ऑन-एपीआई-कॉल/ – Kalpesh

उत्तर

0

उपयोग कर रहा हूँ आप

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

इस से करने के लिए कुछ सरल simliar की स्थापना बैकएंड मतलब है, तो कोई, वहाँ Magento OOB में ऐसी कोई सुविधा है।

मैं एक PHP डीबगर और एपीआई कॉल के माध्यम से तीसरे पक्ष के ऐप कॉल के माध्यम से एकल चरण का उपयोग करने का सुझाव दूंगा।

या अस्थायी रूप से Mage::log() कॉल को एपीआई कॉल, ब्याज के डेटा लॉगिंग के साथ डालें, ताकि आप गलत होने के लिए var/system.log देख सकें।

+0

यदि आप मैगे :: लॉग() को कॉल करते हैं, तो एपीआई के बीच क्या अंतर है और कोई क्रिया बनाएं? –

+0

@JosuaMarcelChrisano - मुझे डर है कि मैं आप का पालन नहीं कर सकता, क्षमा करें। 'Mage :: लॉग() 'लॉग फ़ाइल में डेटा लॉग करने के लिए उपयोग की जाने वाली एक स्थिर विधि है। यह सिर्फ लॉग करता है, इससे कोई फर्क नहीं पड़ता कि आप इसे किसी एक्शन या एपीआई विधि से कॉल करते हैं, और प्रयास वही है। –

1

एपीआई प्रॉक्सी का उपयोग करना वास्तव में एक अच्छा समाधान है। यह उतना जटिल नहीं है जितना लगता है। यह सिर्फ एक PHP स्क्रिप्ट है जिसे आप सामान्य एपीआई यूआरएल की बजाय अपने एपीआई कॉल को इंगित करते हैं। विचार यह है कि यह सामान्य आने वाले एपीआई अनुरोध को सामान्य Magento API पर पास करने से पहले लॉग करता है। यह ग्राहक को वापस पास करने से पहले प्रतिक्रियाओं को भी लॉग करता है।

यहां एक तैयार निर्मित एक है जिसे मैंने अतीत में कई एपीआई मुद्दों का निदान करने के लिए उपयोग किया है। http://techcolin.net/2011/11/a-php-proxy-script-for-logging-magento-api-soap-calls/

7
समय की एक नियंत्रित अवधि के लिए

तुम इतनी तरह अपने index.php में हेरफेर कर सकते हैं:

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

:: रन कॉल के आसपास index.php के अंत में इस कोड डाल

इसकी त्वरित और गंदे लेकिन adhoc डीबगिंग के लिए यह काम करता है