guzzlehttp / log-subscriber
此包已被废弃,不再维护。没有建议的替代包。
记录通过线缆发送的HTTP请求和响应(Guzzle 4+)
1.0.1
2014-10-13 03:31 UTC
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: ~4.0 | ~5.0
- psr/log: ~1.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2020-02-07 15:24:34 UTC
README
LogSubscriber 将 HTTP 请求和响应记录到 PSR-3 日志器、可调用资源或通过调用 echo()
返回的资源。
以下是使用它的最简单示例
use GuzzleHttp\Client; use GuzzleHttp\Subscriber\Log\LogSubscriber; $client = new Client(); $client->getEmitter()->attach(new LogSubscriber()); $client->get('http://httpbin.org');
运行上述示例将使用 Apache Common Log Format (CLF) 输出消息。
[info] hostname Guzzle/5.0 curl/7.21.4 PHP/5.5.7 - [2014-03-01T22:48:13+00:00] "GET / HTTP/1.1" 200 7641
注意
因为没有提供日志器,订阅者仅使用 echo()
记录消息。这是当提供 null
时使用的日志方法。
安装
可以使用 Composer 安装此项目。将以下内容添加到您的 composer.json 中
{ "require": { "guzzlehttp/log-subscriber": "~1.0" } }
使用 PSR-3 日志器
您也可以向构造函数提供一个 PSR-3 日志器。以下示例显示了如何将 LogSubscriber 与 Monolog 结合使用。
use GuzzleHttp\Client; use GuzzleHttp\Subscriber\Log\LogSubscriber; use Monolog\Logger; use Monolog\Handler\StreamHandler; // create a log channel $log = new Logger('name'); $log->pushHandler(new StreamHandler('/path/to/your.log', Logger::WARNING)); $client = new Client(); $subscriber = new LogSubscriber($log); $client->getEmitter()->attach($subscriber);
使用自定义消息格式记录
LogSubscriber 的构造函数接受一个日志器作为第一个参数,一个消息格式字符串或一个消息格式化器作为第二个参数。您可以使用 GuzzleHttp\Subscriber\Log\Formatter::DEBUG
通过调试格式记录完整的 HTTP 请求和响应消息。
use GuzzleHttp\Subscriber\Log\LogSubscriber; use GuzzleHttp\Subscriber\Log\Formatter; // Log the full request and response messages using echo() calls. $subscriber = new LogSubscriber(null, Formatter::DEBUG);
消息格式化器
此存储库包含一个 消息格式化器。消息格式化器用于使用包含花括号({}
)的字符串的变量替换来格式化请求和响应的日志消息。
消息格式化器模板中可用的以下变量
- {request}
- 完整的 HTTP 请求消息
- {response}
- 完整的 HTTP 响应消息
- {ts}
- 时间戳
- {host}
- 请求的主机
- {method}
- 请求的方法
- {url}
- 请求的 URL
- {protocol}
- 请求协议
- {version}
- 协议版本
- {resource}
- 请求的资源(路径 + 查询 + 片段)
- {hostname}
- 发送请求的机器的主机名
- {code}
- 响应的状态码(如果有的话)
- {phrase}
- 响应的原因短语(如果有的话)
- {error}
- 任何错误消息(如果有的话)
- {req_header_*}
- 将
*
替换为要添加到消息中的请求头的低ASCII名称。 - {res_header_*}
- 将
*
替换为要添加到消息中的响应头的低ASCII名称。 - {req_headers}
- 请求头作为字符串。
- {res_headers}
- 响应头作为字符串。
- {req_body}
- 请求体作为字符串。
- {res_body}
- 响应体作为字符串。