使用第三方库记录来自PHP应用程序的所有CURL请求
好吧,我在我的PHP YII2应用程序中遇到了困难。我需要记录来自我的应用程序的每个传入和传出请求。传入的请求可以很容易地记录在PHP本身中(在引导阶段添加一些处理程序),这很容易。
但真正的问题是,我正在使用许多第三方库(例如Amazon MWS SDK、eBay SDK、一些狂饮请求等),并且我想记录所有带有错误响应的传出请求(出于调试/分析原因)。
是否可以更改cURL中的某些设置,以记录这些请求?我的意思是,cURL是否支持php.ini
[curl]
中用于日志记录的某些设置。或者如果没有,有没有php_curl.dll
的源码,你可以对写日志做一些修改,然后编译它。或者至少在不更改/复制第三方SDK的情况下,为应用中的所有cURL请求添加一些处理程序。
我搜索过这个问题,找到了tcpdump
或Wireshark这样的解决方案来嗅探一些报文,但是curl
端真的没有实现日志记录的解决方案吗?
感谢您的关注
解决方案
否,不能在.ini中设置
但如果您可以编辑php curl-run代码,则可以使用两个操作CURLOPT_VERBOSE和CURLOPT_STDERR
http://php.net/manual/en/function.curl-setopt.php
CURLOPT_VERBOSE-打开显示详细信息。 CURLOPT_STDERR-日志的输出句柄因此您的代码将类似于
$LogFileHandle = fopen($PathToLog."/cur.log", "a+");
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_STDERR, $LogFileHandle);
where$ch-由curl_init返回的cURL句柄。和$PathToLog-包含类似"/var/log"
的目录的路径相关文章