Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 188276b

Browse files
committed
Use LogSubscriber API in PsrLogAdapter
1 parent a7165f5 commit 188276b

File tree

2 files changed

+39
-35
lines changed

2 files changed

+39
-35
lines changed

‎src/PsrLogAdapter.php‎

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,56 +17,56 @@
1717

1818
namespace MongoDB;
1919

20-
use MongoDB\Driver\Logging\LoggerasDriverLogger;
20+
use MongoDB\Driver\Monitoring\LogSubscriber;
2121
use MongoDB\Exception\UnexpectedValueException;
22-
use Psr\Log\LoggerInterfaceasPsrLogger;
23-
use Psr\Log\LogLevelasPsrLogLevel;
22+
use Psr\Log\LoggerInterface;
23+
use Psr\Log\LogLevel;
2424
use SplObjectStorage;
2525

26-
use function MongoDB\Driver\Logging\addLogger;
27-
use function MongoDB\Driver\Logging\removeLogger;
26+
use function MongoDB\Driver\Monitoring\addSubscriber;
27+
use function MongoDB\Driver\Monitoring\removeSubscriber;
2828
use function sprintf;
2929

30-
final class PsrLogAdapter implements DriverLogger
30+
final class PsrLogAdapter implements LogSubscriber
3131
{
3232
private static ?self $instance = null;
3333

34-
/** @psalm-var SplObjectStorage<PsrLogger, null> */
35-
private SplObjectStorage $psrLoggers;
34+
/** @psalm-var SplObjectStorage<LoggerInterface, null> */
35+
private SplObjectStorage $loggers;
3636

3737
private const PSR_LEVELS = [
38-
DriverLogger::LEVEL_ERROR => PsrLogLevel::ERROR,
38+
LogSubscriber::LEVEL_ERROR => LogLevel::ERROR,
3939
/* libmongoc considers "critical" less severe than "error" so map it to
4040
* "error" in the PSR logger. */
41-
DriverLogger::LEVEL_CRITICAL => PsrLogLevel::ERROR,
42-
DriverLogger::LEVEL_WARNING => PsrLogLevel::WARNING,
43-
DriverLogger::LEVEL_MESSAGE => PsrLogLevel::NOTICE,
44-
DriverLogger::LEVEL_INFO => PsrLogLevel::INFO,
45-
DriverLogger::LEVEL_DEBUG => PsrLogLevel::DEBUG,
41+
LogSubscriber::LEVEL_CRITICAL => LogLevel::ERROR,
42+
LogSubscriber::LEVEL_WARNING => LogLevel::WARNING,
43+
LogSubscriber::LEVEL_MESSAGE => LogLevel::NOTICE,
44+
LogSubscriber::LEVEL_INFO => LogLevel::INFO,
45+
LogSubscriber::LEVEL_DEBUG => LogLevel::DEBUG,
4646
];
4747

48-
public static function addLogger(PsrLogger$psrLogger): void
48+
public static function addLogger(LoggerInterface$logger): void
4949
{
5050
$instance = self::getInstance();
5151

52-
$instance->psrLoggers->attach($psrLogger);
52+
$instance->loggers->attach($logger);
5353

54-
addLogger($instance);
54+
addSubscriber($instance);
5555
}
5656

5757
/**
5858
* Pipes a log message from PHPC to all registered PSR loggers.
5959
*
6060
* @internal
61-
* @see DriverLogger::log()
61+
* @see LogSubscriber::log()
6262
*/
6363
public function log(int $level, string $domain, string $message): void
6464
{
6565
if (! isset(self::PSR_LEVELS[$level])) {
6666
throw new UnexpectedValueException(sprintf(
6767
'Expected level to be >= %d and <= %d, %d given for domain "%s" and message: %s',
68-
DriverLogger::LEVEL_ERROR,
69-
DriverLogger::LEVEL_DEBUG,
68+
LogSubscriber::LEVEL_ERROR,
69+
LogSubscriber::LEVEL_DEBUG,
7070
$level,
7171
$domain,
7272
$message,
@@ -77,18 +77,18 @@ public function log(int $level, string $domain, string $message): void
7777
$psrLevel = self::PSR_LEVELS[$level];
7878
$context = ['domain' => $domain];
7979

80-
foreach ($instance->psrLoggers as $psrLogger) {
81-
$psrLogger->log($psrLevel, $message, $context);
80+
foreach ($instance->loggers as $logger) {
81+
$logger->log($psrLevel, $message, $context);
8282
}
8383
}
8484

85-
public static function removeLogger(PsrLogger$psrLogger): void
85+
public static function removeLogger(LoggerInterface$logger): void
8686
{
8787
$instance = self::getInstance();
88-
$instance->psrLoggers->detach($psrLogger);
88+
$instance->loggers->detach($logger);
8989

90-
if ($instance->psrLoggers->count() === 0) {
91-
removeLogger($instance);
90+
if ($instance->loggers->count() === 0) {
91+
removeSubscriber($instance);
9292
}
9393
}
9494

@@ -104,11 +104,15 @@ public static function writeLog(int $level, string $domain, string $message): vo
104104

105105
private function __construct()
106106
{
107-
$this->psrLoggers = new SplObjectStorage();
107+
$this->loggers = new SplObjectStorage();
108108
}
109109

110110
private static function getInstance(): self
111111
{
112-
return self::$instance ??= new self();
112+
if (self::$instance === null) {
113+
self::$instance = new self();
114+
}
115+
116+
return self::$instance;
113117
}
114118
}

‎tests/PsrLogAdapterTest.php‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace MongoDB\Tests;
44

5-
use MongoDB\Driver\Logging\LoggerasDriverLogger;
5+
use MongoDB\Driver\Monitoring\LogSubscriber;
66
use MongoDB\Exception\UnexpectedValueException;
77
use MongoDB\PsrLogAdapter;
88
use PHPUnit\Framework\TestCase as BaseTestCase;
@@ -45,12 +45,12 @@ public function testWriteLogMapsDriverLogLevelsToPsrLogLevels(): void
4545

4646
$domain = 'domain';
4747

48-
PsrLogAdapter::writeLog(DriverLogger::LEVEL_ERROR, $domain, 'error');
49-
PsrLogAdapter::writeLog(DriverLogger::LEVEL_CRITICAL, $domain, 'critical');
50-
PsrLogAdapter::writeLog(DriverLogger::LEVEL_WARNING, $domain, 'warning');
51-
PsrLogAdapter::writeLog(DriverLogger::LEVEL_MESSAGE, $domain, 'message');
52-
PsrLogAdapter::writeLog(DriverLogger::LEVEL_INFO, $domain, 'info');
53-
PsrLogAdapter::writeLog(DriverLogger::LEVEL_DEBUG, $domain, 'debug');
48+
PsrLogAdapter::writeLog(LogSubscriber::LEVEL_ERROR, $domain, 'error');
49+
PsrLogAdapter::writeLog(LogSubscriber::LEVEL_CRITICAL, $domain, 'critical');
50+
PsrLogAdapter::writeLog(LogSubscriber::LEVEL_WARNING, $domain, 'warning');
51+
PsrLogAdapter::writeLog(LogSubscriber::LEVEL_MESSAGE, $domain, 'message');
52+
PsrLogAdapter::writeLog(LogSubscriber::LEVEL_INFO, $domain, 'info');
53+
PsrLogAdapter::writeLog(LogSubscriber::LEVEL_DEBUG, $domain, 'debug');
5454

5555
$context = ['domain' => $domain];
5656

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /