Skip to content

Commit 1259496

Browse files
committed
GraphQl-220: Implement exception logging.
Stopped using arguments with the same type
1 parent 6a5c7e2 commit 1259496

File tree

5 files changed

+49
-65
lines changed

5 files changed

+49
-65
lines changed

app/etc/graphql/di.xml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
99
<preference for="Magento\Framework\GraphQl\Query\ErrorHandlerInterface" type="Magento\Framework\GraphQl\Query\ErrorHandler"/>
10-
<type name="Magento\Framework\GraphQl\Query\Resolver\ResolveLogger">
11-
<arguments>
12-
<argument name="clientLogger" xsi:type="object">GraphQLClientLogger</argument>
13-
<argument name="serverLogger" xsi:type="object">GraphQLServerLogger</argument>
14-
</arguments>
15-
</type>
10+
<preference for="Magento\Framework\GraphQl\Query\Resolver\LoggerFactoryInterface" type="Magento\Framework\GraphQl\Query\Resolver\LoggerFactory"/>
1611
<virtualType name="GraphQLClientLogger" type="Magento\Framework\Logger\Monolog">
1712
<arguments>
1813
<argument name="handlers" xsi:type="array">
@@ -37,5 +32,4 @@
3732
<argument name="fileName" xsi:type="const">Magento\Framework\GraphQl\Query\ErrorHandler::SERVER_LOG_FILE</argument>
3833
</arguments>
3934
</virtualType>
40-
<preference for="Magento\Framework\GraphQl\Query\Resolver\ResolveLoggerInterface" type="Magento\Framework\GraphQl\Query\Resolver\ResolveLogger"/>
4135
</config>

lib/internal/Magento/Framework/GraphQl/Query/ErrorHandler.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
namespace Magento\Framework\GraphQl\Query;
99

1010
use GraphQL\Error\ClientAware;
11-
use Magento\Framework\GraphQl\Query\Resolver\ResolveLoggerInterface;
11+
use Magento\Framework\GraphQl\Query\Resolver\LoggerFactoryInterface;
1212

1313
/**
1414
* @inheritDoc
@@ -21,17 +21,17 @@ class ErrorHandler implements ErrorHandlerInterface
2121
const CLIENT_LOG_FILE = 'var/log/graphql/client/exception.log';
2222

2323
/**
24-
* @var ResolveLoggerInterface
24+
* @var LoggerFactoryInterface
2525
*/
26-
private $resolveLogger;
26+
private $loggerFactory;
2727

2828
/**
29-
* @param ResolveLoggerInterface $resolveLogger
29+
* @param LoggerFactoryInterface $loggerFactory
3030
*/
3131
public function __construct(
32-
ResolveLoggerInterface $resolveLogger
32+
LoggerFactoryInterface $loggerFactory
3333
) {
34-
$this->resolveLogger = $resolveLogger;
34+
$this->loggerFactory = $loggerFactory;
3535
}
3636

3737
/**
@@ -41,7 +41,7 @@ public function handle(array $errors, callable $formatter): array
4141
{
4242
return array_map(
4343
function (ClientAware $error) use ($formatter) {
44-
$this->resolveLogger->execute($error)->error($error);
44+
$this->loggerFactory->getLogger($error)->error($error);
4545

4646
return $formatter($error);
4747
},
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Framework\GraphQl\Query\Resolver;
9+
10+
use GraphQL\Error\ClientAware;
11+
use Magento\Framework\ObjectManagerInterface;
12+
use Psr\Log\LoggerInterface;
13+
14+
/**
15+
* @inheritDoc
16+
*/
17+
class LoggerFactory implements LoggerFactoryInterface
18+
{
19+
/**
20+
* @var ObjectManagerInterface
21+
*/
22+
private $objectManager;
23+
24+
public function __construct(
25+
ObjectManagerInterface $objectManager
26+
) {
27+
$this->objectManager = $objectManager;
28+
}
29+
30+
/**
31+
* @inheritDoc
32+
*/
33+
public function getLogger(ClientAware $clientAware): LoggerInterface
34+
{
35+
return $clientAware->isClientSafe() ?
36+
$this->objectManager->get('GraphQLClientLogger') :
37+
$this->objectManager->get('GraphQLServerLogger');
38+
}
39+
}

lib/internal/Magento/Framework/GraphQl/Query/Resolver/ResolveLoggerInterface.php renamed to lib/internal/Magento/Framework/GraphQl/Query/Resolver/LoggerFactoryInterface.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*
1616
* @api
1717
*/
18-
interface ResolveLoggerInterface
18+
interface LoggerFactoryInterface
1919
{
2020
/**
2121
* Get logger to use for certain ClientAware exception
@@ -24,5 +24,5 @@ interface ResolveLoggerInterface
2424
*
2525
* @return LoggerInterface
2626
*/
27-
public function execute(ClientAware $clientAware): LoggerInterface;
27+
public function getLogger(ClientAware $clientAware): LoggerInterface;
2828
}

lib/internal/Magento/Framework/GraphQl/Query/Resolver/ResolveLogger.php

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)