Skip to content

Commit 20c4f4c

Browse files
author
Derek Clapham
committed
Added slack to DI config
1 parent 7b7a97e commit 20c4f4c

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

DependencyInjection/Configuration.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,15 @@
160160
* - [nickname]: defaults to Monolog
161161
* - [level]: level name or int value, defaults to DEBUG
162162
* - [bubble]: bool, defaults to true
163+
*
164+
* - slack:
165+
* - token: slack api token
166+
* - channel: channel name
167+
* - [bot_name]: defaults to Monolog
168+
* - [icon_emoji]: defaults to 'alien'
169+
* - [use_attachment]: bool, defaults to true
170+
* - [level]: level name or int value, defaults to DEBUG
171+
* - [bubble]: bool, defaults to true
163172
*
164173
* - cube:
165174
* - url: http/udp url to the cube server
@@ -285,9 +294,13 @@ public function getConfigTreeBuilder()
285294
->scalarNode('exchange')->end() // amqp
286295
->scalarNode('exchange_name')->defaultValue('log')->end() // amqp
287296
->scalarNode('room')->end() // hipchat
297+
->scalarNode('channel')->end() // slack
298+
->scalarNode('bot_name')->defaultValue('Monolog')->end() // slack
299+
->scalarNode('use_attachment')->defaultTrue()->end() // slack
300+
->scalarNode('icon_emoji')->defaultValue('alien')->end() // slack
288301
->scalarNode('notify')->defaultFalse()->end() // hipchat
289302
->scalarNode('nickname')->defaultValue('Monolog')->end() // hipchat
290-
->scalarNode('token')->end() // pushover & hipchat & loggly & logentries & flowdock & rollbar
303+
->scalarNode('token')->end() // pushover & hipchat & loggly & logentries & flowdock & rollbar & slack
291304
->scalarNode('source')->end() // flowdock
292305
->booleanNode('use_ssl')->defaultTrue()->end() // logentries
293306
->variableNode('user') // pushover
@@ -577,6 +590,10 @@ public function getConfigTreeBuilder()
577590
->ifTrue(function ($v) { return 'hipchat' === $v['type'] && (empty($v['token']) || empty($v['room'])); })
578591
->thenInvalid('The token and room have to be specified to use a HipChatHandler')
579592
->end()
593+
->validate()
594+
->ifTrue(function ($v) { return 'slack' === $v['type'] && (empty($v['token']) || empty($v['channel'])); })
595+
->thenInvalid('The token and channel have to be specified to use a SlackHandler')
596+
->end()
580597
->validate()
581598
->ifTrue(function ($v) { return 'cube' === $v['type'] && empty($v['url']); })
582599
->thenInvalid('The url has to be specified to use a CubeHandler')

DependencyInjection/MonologExtension.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,18 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler
441441
$handler['bubble'],
442442
));
443443
break;
444+
445+
case 'slack':
446+
$definition->setArguments(array(
447+
$handler['token'],
448+
$handler['channel'],
449+
$handler['bot_name'],
450+
$handler['icon_emoji'],
451+
$handler['use_attachment'],
452+
$handler['level'],
453+
$handler['bubble'],
454+
));
455+
break;
444456

445457
case 'cube':
446458
$definition->setArguments(array(

Resources/config/monolog.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<parameter key="monolog.handler.raven.class">Monolog\Handler\RavenHandler</parameter>
3232
<parameter key="monolog.handler.newrelic.class">Monolog\Handler\NewRelicHandler</parameter>
3333
<parameter key="monolog.handler.hipchat.class">Monolog\Handler\HipChatHandler</parameter>
34+
<parameter key="monolog.handler.slack.class">Monolog\Handler\SlackHandler</parameter>
3435
<parameter key="monolog.handler.cube.class">Monolog\Handler\CubeHandler</parameter>
3536
<parameter key="monolog.handler.amqp.class">Monolog\Handler\AmqpHandler</parameter>
3637
<parameter key="monolog.handler.error_log.class">Monolog\Handler\ErrorLogHandler</parameter>

0 commit comments

Comments
 (0)