Skip to content

Commit ecb6980

Browse files
committed
[consumption] Add ability to overwrite logger.
1 parent c887eb3 commit ecb6980

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

pkg/enqueue/Consumption/Extension/LoggerExtension.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,16 @@ public function __construct(LoggerInterface $logger)
3131
*/
3232
public function onStart(Context $context)
3333
{
34-
$context->setLogger($this->logger);
35-
$this->logger->debug(sprintf('Set context\'s logger %s', get_class($this->logger)));
34+
if ($context->getLogger()) {
35+
$context->getLogger()->debug(sprintf(
36+
'Skip setting context\'s logger "%s". Another one "%s" has already been set.',
37+
get_class($context->getLogger()),
38+
get_class($this->logger)
39+
));
40+
} else {
41+
$context->setLogger($this->logger);
42+
$this->logger->debug(sprintf('Set context\'s logger "%s"', get_class($this->logger)));
43+
}
3644
}
3745

3846
/**

pkg/enqueue/Tests/Consumption/Extension/LoggerExtensionTest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,29 @@ public function testShouldNotLogAckMessageStatusIfReasonIsEmpty()
151151
$extension->onPostReceived($context);
152152
}
153153

154+
public function testShouldNotSetLoggerIfOneHasBeenSetOnStart()
155+
{
156+
$logger = $this->createLogger();
157+
158+
$alreadySetLogger = $this->createLogger();
159+
$alreadySetLogger
160+
->expects($this->once())
161+
->method('debug')
162+
->with(sprintf(
163+
'Skip setting context\'s logger "%s". Another one "%s" has already been set.',
164+
get_class($logger),
165+
get_class($alreadySetLogger)
166+
))
167+
;
168+
169+
$extension = new LoggerExtension($logger);
170+
171+
$context = new Context($this->createPsrContextMock());
172+
$context->setLogger($alreadySetLogger);
173+
174+
$extension->onStart($context);
175+
}
176+
154177
/**
155178
* @return \PHPUnit_Framework_MockObject_MockObject|PsrContext
156179
*/

0 commit comments

Comments
 (0)