Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
feature #35273 [HttpClient] Add LoggerAwareInterface to ScopingHttpCl…
…ient and TraceableHttpClient (pierredup)

This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] Add LoggerAwareInterface to ScopingHttpClient and TraceableHttpClient

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

This allows changing the logger when using `ScopingHttpClient` (and `TraceableHttpClient` during dev)

Commits
-------

1137bdc Add LoggerAwareInterface to ScopingHttpClient and TraceableHttpClient
  • Loading branch information
fabpot committed Jan 10, 2020
2 parents af3c205 + 1137bdc commit 9edb161
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/Symfony/Component/HttpClient/CHANGELOG.md
@@ -1,6 +1,11 @@
CHANGELOG
=========

5.1.0
-----

* added `LoggerAwareInterface` to `ScopingHttpClient` and `TraceableHttpClient`

4.4.0
-----

Expand Down
14 changes: 13 additions & 1 deletion src/Symfony/Component/HttpClient/ScopingHttpClient.php
Expand Up @@ -11,6 +11,8 @@

namespace Symfony\Component\HttpClient;

use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Symfony\Component\HttpClient\Exception\InvalidArgumentException;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Symfony\Contracts\HttpClient\ResponseInterface;
Expand All @@ -22,7 +24,7 @@
*
* @author Anthony Martin <anthony.martin@sensiolabs.com>
*/
class ScopingHttpClient implements HttpClientInterface, ResetInterface
class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAwareInterface
{
use HttpClientTrait;

Expand Down Expand Up @@ -98,4 +100,14 @@ public function reset()
$this->client->reset();
}
}

/**
* {@inheritdoc}
*/
public function setLogger(LoggerInterface $logger): void
{
if ($this->client instanceof LoggerAwareInterface) {
$this->client->setLogger($logger);
}
}
}
14 changes: 13 additions & 1 deletion src/Symfony/Component/HttpClient/TraceableHttpClient.php
Expand Up @@ -11,6 +11,8 @@

namespace Symfony\Component\HttpClient;

use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Symfony\Contracts\HttpClient\ResponseInterface;
use Symfony\Contracts\HttpClient\ResponseStreamInterface;
Expand All @@ -19,7 +21,7 @@
/**
* @author Jérémy Romey <jeremy@free-agent.fr>
*/
final class TraceableHttpClient implements HttpClientInterface, ResetInterface
final class TraceableHttpClient implements HttpClientInterface, ResetInterface, LoggerAwareInterface
{
private $client;
private $tracedRequests = [];
Expand Down Expand Up @@ -75,4 +77,14 @@ public function reset()

$this->tracedRequests = [];
}

/**
* {@inheritdoc}
*/
public function setLogger(LoggerInterface $logger): void
{
if ($this->client instanceof LoggerAwareInterface) {
$this->client->setLogger($logger);
}
}
}

0 comments on commit 9edb161

Please sign in to comment.