使用第三方库记录来自PHP应用程序的所有CURL请求

2022-07-24 00:00:00 dll curl php yii2

好吧,我在我的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"

的目录的路径

相关文章