|
@@ -34,27 +34,42 @@ class Configuration
|
|
|
$treeBuilder = new TreeBuilder();
|
|
|
$rootNode = $treeBuilder->root('monolog', 'array');
|
|
|
|
|
|
- // TODO update XSD to match this
|
|
|
$rootNode
|
|
|
+ ->fixXmlConfig('handler')
|
|
|
->arrayNode('handlers')
|
|
|
- ->fixXmlConfig('handler')
|
|
|
->canBeUnset()
|
|
|
->performNoDeepMerging()
|
|
|
+ ->useAttributeAsKey('name')
|
|
|
->prototype('array')
|
|
|
->performNoDeepMerging()
|
|
|
- // TODO lowercase the type always
|
|
|
- ->scalarNode('type')->isRequired()->end()
|
|
|
+ ->scalarNode('type')
|
|
|
+ ->isRequired()
|
|
|
+ ->beforeNormalization()
|
|
|
+ ->always()
|
|
|
+ ->then(function($v) { return strtolower($v); })
|
|
|
+ ->end()
|
|
|
+ ->end()
|
|
|
->scalarNode('action_level')->end()
|
|
|
->scalarNode('level')->defaultValue('INFO')->end()
|
|
|
->scalarNode('path')->end()
|
|
|
- ->scalarNode('bubble')->end()
|
|
|
+ ->booleanNode('bubble')->defaultFalse()->end()
|
|
|
->scalarNode('buffer_size')->end()
|
|
|
->arrayNode('handler')
|
|
|
->performNoDeepMerging()
|
|
|
- ->scalarNode('type')->isRequired()->end()
|
|
|
+ ->scalarNode('type')
|
|
|
+ ->isRequired()
|
|
|
+ ->beforeNormalization()
|
|
|
+ ->always()
|
|
|
+ ->then(function($v) { return strtolower($v); })
|
|
|
+ ->end()
|
|
|
+ ->end()
|
|
|
->scalarNode('level')->defaultValue('DEBUG')->end()
|
|
|
->scalarNode('path')->end()
|
|
|
->end()
|
|
|
+ ->validate()
|
|
|
+ ->ifTrue(function($v) { return 'fingerscrossed' === $v['type'] && !isset($v['handler']); })
|
|
|
+ ->thenInvalid('The handler has to be specified to use a FingersCrossedHandler')
|
|
|
+ ->end()
|
|
|
->end()
|
|
|
->end()
|
|
|
;
|