API呼び出しのログを記録する方法はありますか?Magento APIログ
私たちのストアでの作業に問題があり、デバッグ情報を取得したいサードパーティのアプリケーションがあります。 〜私は何も見つかりませんでしたbtを検索しました。あなたはこれで
System -> Configuration -> Developer -> Debug -> Profiler -> Yes
にsimliar設定するいくつかの簡単なバックエンドを意味している場合、私は1.7
API呼び出しのログを記録する方法はありますか?Magento APIログ
私たちのストアでの作業に問題があり、デバッグ情報を取得したいサードパーティのアプリケーションがあります。 〜私は何も見つかりませんでしたbtを検索しました。あなたはこれで
System -> Configuration -> Developer -> Debug -> Profiler -> Yes
にsimliar設定するいくつかの簡単なバックエンドを意味している場合、私は1.7
を使用してい
、その後、いや、MagentoのOOBには、このような機能はありません。
私は、APIデバッガを使用して、API呼び出しを通じて第三者のアプリケーション呼び出しを行うことをお勧めします。
または、の呼び出しを一時的に挿入して、問題のデータをログに記録して、var/system.log
に問題がないかどうかを確認することができます。
Mage :: log()を呼び出すと、APIの違いは何ですか? –
@JosuaMarcelChrisano - 私はあなたに追いつくことができないのです、ごめんなさい。 'Mage :: log()'は単にログファイルにデータを記録するのに使われる静的メソッドです。アクションやAPIメソッドの中から呼び出すかどうかにかかわらず、ログに記録されます。その作業は同じです。 –
本当に良い解決策は、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/
:
::実行呼び出しの周りの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();
はすばやく汚れていますが、アドホックデバッグでは機能します。
Magentoデベロッパーにapp/code/core/Mage/Api/Model/Server/Handler/Abstract.php –
の関数 'call' way:http://ka.lpe.sh/2014/06/22/m agento-enable-logs-on-api-calls/ – Kalpesh