Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,7 @@ public function getConfigTreeBuilder(): TreeBuilder
->end()
->end()
->scalarNode('id')->end() // service & rollbar
->scalarNode('enabled')->defaultTrue()->end()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it intended that this is not a booleanNode?

->scalarNode('priority')->defaultValue(0)->end()
->scalarNode('level')->defaultValue('DEBUG')->end()
->booleanNode('bubble')->defaultTrue()->end()
Expand Down
3 changes: 3 additions & 0 deletions DependencyInjection/MonologExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ public function load(array $configs, ContainerBuilder $container)
$handlers = [];

foreach ($config['handlers'] as $name => $handler) {
if(false === $handler['enabled']) {
continue;
}
$handlers[$handler['priority']][] = [
'id' => $this->buildHandler($container, $name, $handler),
'channels' => empty($handler['channels']) ? null : $handler['channels'],
Expand Down
43 changes: 43 additions & 0 deletions Tests/DependencyInjection/Compiler/LoggerChannelPassTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\MonologBundle\DependencyInjection\Compiler\LoggerChannelPass;
use Symfony\Bundle\MonologBundle\DependencyInjection\MonologExtension;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
Expand Down Expand Up @@ -232,6 +233,48 @@ private function getFunctionalContainer()

return $container;
}

public function testEnabledHandler()
{
$container = new ContainerBuilder();
$loader = new MonologExtension();

$config = [
'handlers' => [
'main' => [
'enabled' => true,
'type' => 'stream',
'path' => '%kernel.logs_dir%/%kernel.environment%.log',
'level' => 'debug',
],
],
];

$loader->load([$config], $container);

$this->assertTrue($container->hasDefinition('monolog.handler.main'));
}

public function testDisabledHandler()
{
$container = new ContainerBuilder();
$loader = new MonologExtension();

$config = [
'handlers' => [
'main' => [
'enabled' => false,
'type' => 'stream',
'path' => '%kernel.logs_dir%/%kernel.environment%.log',
'level' => 'debug',
],
],
];

$loader->load([$config], $container);

$this->assertFalse($container->hasDefinition('monolog.handler.main'));
}
}

class DummyService
Expand Down