有没有办法打开API调用的日志记录?
我们有第三方应用程序在使用我们的商店时遇到问题,并希望获得一些调试信息。 〜我已经搜索过什么都找不到。
我正在使用1.7
答案 0 :(得分:9)
在一段受控的时间内,您可以像这样操作index.php:
将此代码放在:: run call:
周围的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();
它的快速和肮脏,但对于特殊调试,它可以工作
答案 1 :(得分:1)
一个非常好的解决方案是使用API代理。它并不像听起来那么复杂。它只是一个PHP脚本,您指向API调用而不是普通的API URL。 我们的想法是在将每个传入的API请求传递到普通的magento API之前记录它们。 它还会在将响应传递回客户端之前记录响应。
这里有一个现成的,我过去用它来诊断许多API问题。 http://techcolin.net/2011/11/a-php-proxy-script-for-logging-magento-api-soap-calls/
答案 2 :(得分:0)
如果你的意思是一些简单的后端设置与
相似System -> Configuration -> Developer -> Debug -> Profiler -> Yes
由此,然后不,Magento OOB中没有这样的功能。
我建议使用PHP调试器,然后单步通过API调用第三方应用程序调用。
或者在API调用的同时临时插入Mage::log()
个调用,记录感兴趣的数据,以便您可以检查var/system.log
出现的问题。