Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MagentoAPI日志_Magento - Fatal编程技术网

MagentoAPI日志

MagentoAPI日志,magento,Magento,有没有办法打开API调用的日志记录 我们有一个第三方应用程序在使用我们的商店时遇到问题,希望获得一些调试信息~我找过了,什么也没找到 我使用的是1.7,如果你是指simliar的一些简单后端设置的话 System -> Configuration -> Developer -> Debug -> Profiler -> Yes 通过这个,那么不,在Magento OOB中没有这样的功能 我建议使用PHP调试器和单步通过API调用第三方应用程序调用 或者在API调

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

我们有一个第三方应用程序在使用我们的商店时遇到问题,希望获得一些调试信息~我找过了,什么也没找到


我使用的是1.7,如果你是指simliar的一些简单后端设置的话

System -> Configuration -> Developer -> Debug -> Profiler -> Yes 
通过这个,那么不,在Magento OOB中没有这样的功能

我建议使用PHP调试器和单步通过API调用第三方应用程序调用


或者在API调用旁边临时插入
Mage::log()
调用,记录感兴趣的数据,这样您就可以检查
var/system.log
是否出错。

一个真正好的解决方案是使用API代理。它不像听起来那么复杂。它只是一个PHP脚本,您可以将API调用指向它,而不是普通的API URL。 其思想是,它记录每个传入的API请求,然后再将其传递到普通的MagentoAPI。 它还记录响应,然后再将其传递回客户端

这里有一个现成的API,我过去曾用它来诊断许多API问题。
在一段受控的时间内,您可以像这样操作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();
ob_start();
Mage::run($mageRunCode,$mageRunType);
if(preg_match('/api/',$_服务器['REQUEST_URI'])){

Mage::log('要求Magento开发人员重写app/code/core/Mage/Api/Model/Server/Handler/Abstract.php上的函数'call',用于临时用途,简单方法:如果调用Mage::log(),Api和创建操作之间有什么区别?@JosuaMarcelChrisano-恐怕我听不懂,抱歉。
Mage::log()
只是一种用于将数据记录到日志文件中的静态方法。它只是记录数据,无论您是从操作内部调用它还是从API方法调用它,所做的工作都是一样的。