Skip to content

Commit

Permalink
Add stream handler lock option
Browse files Browse the repository at this point in the history
  • Loading branch information
mRoca committed Dec 7, 2017
1 parent 2b41b8b commit 00ed2f3
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 8 deletions.
3 changes: 3 additions & 0 deletions DependencyInjection/Configuration.php
Expand Up @@ -31,6 +31,8 @@
* - path: string
* - [level]: level name or int value, defaults to DEBUG
* - [bubble]: bool, defaults to true
* - [file_permission]: int|null, defaults to null (0644)
* - [use_locking]: bool, defaults to false
*
* - console:
* - [verbosity_levels]: level => verbosity configuration
Expand Down Expand Up @@ -349,6 +351,7 @@ public function getConfigTreeBuilder()
})
->end()
->end()
->booleanNode('use_locking')->defaultFalse()->end() // stream
->scalarNode('filename_format')->defaultValue('{filename}-{date}')->end() //rotating
->scalarNode('date_format')->defaultValue('Y-m-d')->end() //rotating
->scalarNode('ident')->defaultFalse()->end() // syslog
Expand Down
1 change: 1 addition & 0 deletions DependencyInjection/MonologExtension.php
Expand Up @@ -162,6 +162,7 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler
$handler['level'],
$handler['bubble'],
$handler['file_permission'],
$handler['use_locking'],
));
break;

Expand Down
1 change: 1 addition & 0 deletions Resources/config/schema/monolog-1.0.xsd
Expand Up @@ -33,6 +33,7 @@
<xsd:attribute name="level" type="level" />
<xsd:attribute name="bubble" type="xsd:boolean" />
<xsd:attribute name="process-psr-3-messages" type="xsd:boolean" />
<xsd:attribute name="use_locking" type="xsd:boolean" />
<xsd:attribute name="app-name" type="xsd:string" />
<xsd:attribute name="path" type="xsd:string" />
<xsd:attribute name="id" type="xsd:string" />
Expand Down
25 changes: 25 additions & 0 deletions Tests/DependencyInjection/ConfigurationTest.php
Expand Up @@ -323,6 +323,31 @@ public function testWithFilePermission()
$this->assertSame(0777, $config['handlers']['bar']['file_permission']);
}

public function testWithUseLocking()
{
$configs = array(
array(
'handlers' => array(
'foo' => array(
'type' => 'stream',
'path' => '/foo',
'use_locking' => false,
),
'bar' => array(
'type' => 'stream',
'path' => '/bar',
'use_locking' => true,
)
)
)
);

$config = $this->process($configs);

$this->assertFalse($config['handlers']['foo']['use_locking']);
$this->assertTrue($config['handlers']['bar']['use_locking']);
}

public function testWithNestedHandler()
{
$configs = array(
Expand Down
8 changes: 4 additions & 4 deletions Tests/DependencyInjection/FixtureMonologExtensionTest.php
Expand Up @@ -38,7 +38,7 @@ public function testLoadWithSeveralHandlers()

$handler = $container->getDefinition('monolog.handler.custom');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\StreamHandler');
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666));
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666, false));

$handler = $container->getDefinition('monolog.handler.main');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\FingersCrossedHandler');
Expand Down Expand Up @@ -66,7 +66,7 @@ public function testLoadWithOverwriting()

$handler = $container->getDefinition('monolog.handler.custom');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\StreamHandler');
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::WARNING, true, null));
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::WARNING, true, null, false));

$handler = $container->getDefinition('monolog.handler.main');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\FingersCrossedHandler');
Expand All @@ -92,7 +92,7 @@ public function testLoadWithNewAtEnd()

$handler = $container->getDefinition('monolog.handler.new');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\StreamHandler');
$this->assertDICConstructorArguments($handler, array('/tmp/monolog.log', \Monolog\Logger::ERROR, true, null));
$this->assertDICConstructorArguments($handler, array('/tmp/monolog.log', \Monolog\Logger::ERROR, true, null, false));
}

public function testLoadWithNewAndPriority()
Expand Down Expand Up @@ -124,7 +124,7 @@ public function testLoadWithNewAndPriority()

$handler = $container->getDefinition('monolog.handler.last');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\StreamHandler');
$this->assertDICConstructorArguments($handler, array('/tmp/last.log', \Monolog\Logger::ERROR, true, null));
$this->assertDICConstructorArguments($handler, array('/tmp/last.log', \Monolog\Logger::ERROR, true, null, false));
}

public function testHandlersWithChannels()
Expand Down
8 changes: 4 additions & 4 deletions Tests/DependencyInjection/MonologExtensionTest.php
Expand Up @@ -33,14 +33,14 @@ public function testLoadWithDefault()

$handler = $container->getDefinition('monolog.handler.main');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\StreamHandler');
$this->assertDICConstructorArguments($handler, array('%kernel.logs_dir%/%kernel.environment%.log', \Monolog\Logger::DEBUG, true, null));
$this->assertDICConstructorArguments($handler, array('%kernel.logs_dir%/%kernel.environment%.log', \Monolog\Logger::DEBUG, true, null, false));
$this->assertDICDefinitionMethodCallAt(0, $handler, 'pushProcessor', array(new Reference('monolog.processor.psr_log_message')));
}

public function testLoadWithCustomValues()
{
$container = $this->getContainer(array(array('handlers' => array(
'custom' => array('type' => 'stream', 'path' => '/tmp/symfony.log', 'bubble' => false, 'level' => 'ERROR', 'file_permission' => '0666')
'custom' => array('type' => 'stream', 'path' => '/tmp/symfony.log', 'bubble' => false, 'level' => 'ERROR', 'file_permission' => '0666', 'use_locking' => true)
))));
$this->assertTrue($container->hasDefinition('monolog.logger'));
$this->assertTrue($container->hasDefinition('monolog.handler.custom'));
Expand All @@ -51,7 +51,7 @@ public function testLoadWithCustomValues()

$handler = $container->getDefinition('monolog.handler.custom');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\StreamHandler');
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666));
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666, true));
}

public function testLoadWithNestedHandler()
Expand All @@ -71,7 +71,7 @@ public function testLoadWithNestedHandler()

$handler = $container->getDefinition('monolog.handler.custom');
$this->assertDICDefinitionClass($handler, 'Monolog\Handler\StreamHandler');
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666));
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666, false));
}

public function testLoadWithServiceHandler()
Expand Down

0 comments on commit 00ed2f3

Please sign in to comment.