2012-08-23 4 views
5

API呼び出しのログを記録する方法はありますか?Magento APIログ

私たちのストアでの作業に問題があり、デバッグ情報を取得したいサードパーティのアプリケーションがあります。 〜私は何も見つかりませんでしたbtを検索しました。あなたはこれで

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

にsimliar設定するいくつかの簡単なバックエンドを意味している場合、私は1.7

+0

Magentoデベロッパーにapp/code/core/Mage/Api/Model/Server/Handler/Abstract.php –

+0

の関数 'call' way:http://ka.lpe.sh/2014/06/22/m agento-enable-logs-on-api-calls/ – Kalpesh

答えて

0

を使用してい

、その後、いや、MagentoのOOBには、このような機能はありません。

私は、APIデバッガを使用して、API呼び出しを通じて第三者のアプリケーション呼び出しを行うことをお勧めします。

または、の呼び出しを一時的に挿入して、問題のデータをログに記録して、var/system.logに問題がないかどうかを確認することができます。

+0

Mage :: log()を呼び出すと、APIの違いは何ですか? –

+0

@JosuaMarcelChrisano - 私はあなたに追いつくことができないのです、ごめんなさい。 'Mage :: log()'は単にログファイルにデータを記録するのに使われる静的メソッドです。アクションやAPIメソッドの中から呼び出すかどうかにかかわらず、ログに記録されます。その作業は同じです。 –

1

本当に良い解決策は、APIプロキシを使用することです。それは聞こえるほど複雑ではありません。これは、通常のAPI URLの代わりにAPI呼び出しを指すPHPスクリプトです。 通常のmagento APIに渡す前に、すべての着信APIリクエストを記録するという考え方です。 応答をログに記録してからクライアントに戻します。

ここには、過去に多くのAPIの問題を診断するために使用していた準備が整いました。あなたはそのようなあなたのindex.phpを操作できる制御された期間のため 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(); 

はすばやく汚れていますが、アドホックデバッグでは機能します。

関連する問題