Add logger to FileCookieJar

This commit is contained in:
Jeremy Benoist 2019-07-24 16:07:38 +02:00
parent 9a80dcf11e
commit 51d7f62b31
No known key found for this signature in database
GPG key ID: 84290C294324D304
2 changed files with 22 additions and 1 deletions

View file

@ -5,6 +5,7 @@ namespace Wallabag\CoreBundle\Helper;
use GuzzleHttp\Cookie\FileCookieJar as BaseFileCookieJar;
use GuzzleHttp\Cookie\SetCookie;
use GuzzleHttp\Utils;
use Psr\Log\LoggerInterface;
/**
* Overidden Cookie behavior to:
@ -13,6 +14,19 @@ use GuzzleHttp\Utils;
*/
class FileCookieJar extends BaseFileCookieJar
{
private $logger;
/**
* @param LoggerInterface $logger Only used to log info when something goes wrong
* @param string $cookieFile File to store the cookie data
*/
public function __construct(LoggerInterface $logger, $cookieFile)
{
parent::__construct($cookieFile);
$this->logger = $logger;
}
/**
* Saves the cookies to a file.
*
@ -57,6 +71,11 @@ class FileCookieJar extends BaseFileCookieJar
try {
$data = Utils::jsonDecode($json, true);
} catch (\InvalidArgumentException $e) {
$this->logger->error('JSON inside the cookie is broken', [
'json' => $json,
'error_msg' => $e->getMessage(),
]);
// cookie file is invalid, just ignore the exception and it'll reset the whole cookie file
$data = '';
}

View file

@ -83,7 +83,9 @@ services:
wallabag_core.guzzle.cookie_jar:
class: Wallabag\CoreBundle\Helper\FileCookieJar
arguments: ["%kernel.cache_dir%/cookiejar.json"]
arguments:
- "@logger"
- "%kernel.cache_dir%/cookiejar.json"
wallabag_core.content_proxy:
class: Wallabag\CoreBundle\Helper\ContentProxy