|
344 | 344 | * - [level]: level name or int value, defaults to DEBUG
|
345 | 345 | * - [bubble]: bool, defaults to true
|
346 | 346 | *
|
| 347 | + * - telegram: |
| 348 | + * - token: Telegram bot access token provided by BotFather |
| 349 | + * - channel: Telegram channel name |
| 350 | + * - [level]: level name or int value, defaults to DEBUG |
| 351 | + * - [bubble]: bool, defaults to true |
| 352 | + * - [parse_mode]: optional the kind of formatting that is used for the message |
| 353 | + * - [disable_webpage_preview]: bool, defaults to false, disables link previews for links in the message |
| 354 | + * - [disable_notification]: bool, defaults to false, sends the message silently. Users will receive a notification with no sound |
| 355 | + * - [split_long_messages]: bool, defaults to false, split messages longer than 4096 bytes into multiple messages |
| 356 | + * - [delay_between_messages]: bool, defaults to false, adds a 1sec delay/sleep between sending split messages |
| 357 | + * |
347 | 358 | * All handlers can also be marked with `nested: true` to make sure they are never added explicitly to the stack
|
348 | 359 | *
|
349 | 360 | * @author Jordi Boggiano <j.boggiano@seld.be>
|
@@ -564,6 +575,11 @@ public function getConfigTreeBuilder()
|
564 | 575 | ->scalarNode('release')->defaultNull()->end() // raven_handler, sentry_handler
|
565 | 576 | ->scalarNode('environment')->defaultNull()->end() // raven_handler, sentry_handler
|
566 | 577 | ->scalarNode('message_type')->defaultValue(0)->end() // error_log
|
| 578 | + ->scalarNode('parse_mode')->defaultNull()->end() // telegram |
| 579 | + ->booleanNode('disable_webpage_preview')->defaultNull()->end() // telegram |
| 580 | + ->booleanNode('disable_notification')->defaultNull()->end() // telegram |
| 581 | + ->booleanNode('split_long_messages')->defaultFalse()->end() // telegram |
| 582 | + ->booleanNode('delay_between_messages')->defaultFalse()->end() // telegram |
567 | 583 | ->arrayNode('tags') // loggly
|
568 | 584 | ->beforeNormalization()
|
569 | 585 | ->ifString()
|
@@ -600,6 +616,7 @@ public function getConfigTreeBuilder()
|
600 | 616 | $this->addMongoSection($handlerNode);
|
601 | 617 | $this->addElasticsearchSection($handlerNode);
|
602 | 618 | $this->addRedisSection($handlerNode);
|
| 619 | + $this->addTelegramSection($handlerNode); |
603 | 620 | $this->addPredisSection($handlerNode);
|
604 | 621 | $this->addMailerSection($handlerNode);
|
605 | 622 | $this->addVerbosityLevelSection($handlerNode);
|
@@ -865,6 +882,25 @@ private function addElasticsearchSection(ArrayNodeDefinition $handerNode)
|
865 | 882 | ;
|
866 | 883 | }
|
867 | 884 |
|
| 885 | + private function addTelegramSection(ArrayNodeDefinition $handerNode) |
| 886 | + { |
| 887 | + $handerNode |
| 888 | + ->children() |
| 889 | + ->arrayNode('telegram') |
| 890 | + ->canBeUnset() |
| 891 | + ->children() |
| 892 | + ->scalarNode('token')->end() |
| 893 | + ->scalarNode('channel')->end() |
| 894 | + ->end() |
| 895 | + ->end() |
| 896 | + ->end() |
| 897 | + ->validate() |
| 898 | + ->ifTrue(function ($v) { return 'telegram' === $v['type'] && empty($v['id']) && (empty($v['token']) || empty($v['channel'])); }) |
| 899 | + ->thenInvalid('The token and channel have to be specified to use a TelegramBotHandler') |
| 900 | + ->end() |
| 901 | + ; |
| 902 | + } |
| 903 | + |
868 | 904 | private function addRedisSection(ArrayNodeDefinition $handerNode)
|
869 | 905 | {
|
870 | 906 | $handerNode
|
|
0 commit comments