使用第三方库记录来自PHP应用程序的所有CURL请求 [英] Log all cURL requests from an PHP application with third-party libraries
本文介绍了使用第三方库记录来自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"
的目录的路径这篇关于使用第三方库记录来自PHP应用程序的所有CURL请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文