6

有没有办法打开 API 调用的日志记录?

我们有一个第三方应用程序在与我们的商店合作时遇到问题,并希望获得一些调试信息。〜我已经搜索了bt,一无所获。

我正在使用 1.7

4

3 回答 3

9

在一段受控的时间内,您可以像这样操作您的 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();

它快速而肮脏,但对于临时调试它有效

于 2015-05-11T14:46:59.570 回答
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/

于 2013-10-08T00:05:23.270 回答
0

如果您的意思是一些简单的后端设置,类似于

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

这样,不,Magento OOB 中没有这样的功能。

我建议使用 PHP 调试器并通过 API 调用单步调用 3rd 方应用程序调用。

或者在 API 调用旁边临时插入Mage::log()调用,记录感兴趣的数据,以便您检查var/system.log出了什么问题。

于 2012-08-23T08:25:10.610 回答