diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index b0c70c74..6285e079 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -68,6 +68,9 @@ public function getConfigTreeBuilder() ->booleanNode('stop_buffering')->defaultTrue()->end()// fingers_crossed ->scalarNode('buffer_size')->defaultValue(0)->end() // fingers_crossed and buffer ->scalarNode('handler')->end() // fingers_crossed and buffer + ->scalarNode('token')->end() // pushover + ->scalarNode('user')->end() // pushover + ->scalarNode('title')->defaultNull()->end() // pushover ->arrayNode('publisher') ->canBeUnset() ->beforeNormalization() @@ -196,6 +199,10 @@ public function getConfigTreeBuilder() ->ifTrue(function($v) { return 'socket' === $v['type'] && !isset($v['connection_string']); }) ->thenInvalid('The connection_string has to be specified to use a SocketHandler') ->end() + ->validate() + ->ifTrue(function($v) { return 'pushover' === $v['type'] && (empty($v['token']) || empty($v['user'])); }) + ->thenInvalid('The token and user have to be specified to use a PushoverHandler') + ->end() ->end() ->validate() ->ifTrue(function($v) { return isset($v['debug']); }) diff --git a/DependencyInjection/MonologExtension.php b/DependencyInjection/MonologExtension.php index 885f6f91..b219bea5 100644 --- a/DependencyInjection/MonologExtension.php +++ b/DependencyInjection/MonologExtension.php @@ -277,6 +277,16 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler } break; + case 'pushover': + $definition->setArguments(array( + $handler['token'], + $handler['user'], + $handler['title'], + $handler['level'], + $handler['bubble'], + )); + break; + // Handlers using the constructor of AbstractHandler without adding their own arguments case 'test': case 'null': diff --git a/Resources/config/monolog.xml b/Resources/config/monolog.xml index 47b0cccb..61c3e50d 100644 --- a/Resources/config/monolog.xml +++ b/Resources/config/monolog.xml @@ -21,6 +21,7 @@ Monolog\Handler\SwiftMailerHandler Monolog\Handler\NativeMailerHandler Monolog\Handler\SocketHandler + Monolog\Handler\PushoverHandler Monolog\Handler\FingersCrossedHandler Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy