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