From 7253dc0a4fbe64cd5e26ee3b85112811ae66e363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Karlovi=C4=87?= Date: Mon, 17 Mar 2025 16:06:03 +0100 Subject: [PATCH] feat: console.interactive_only flag --- DependencyInjection/Configuration.php | 7 +++++++ DependencyInjection/MonologExtension.php | 1 + Resources/config/schema/monolog-1.0.xsd | 1 + composer.json | 1 + 4 files changed, 10 insertions(+) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 255eba47..ee3ad741 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -11,6 +11,7 @@ namespace Symfony\Bundle\MonologBundle\DependencyInjection; +use Composer\InstalledVersions; use Monolog\Logger; use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; use Symfony\Component\Config\Definition\Builder\TreeBuilder; @@ -40,6 +41,7 @@ * - [level]: level name or int value, defaults to DEBUG * - [bubble]: bool, defaults to true * - [console_formatter_options]: array + * - [interactive_only]: bool, defaults to false * * - firephp: * - [level]: level name or int value, defaults to DEBUG @@ -448,6 +450,7 @@ public function getConfigTreeBuilder(): TreeBuilder ->scalarNode('priority')->defaultValue(0)->end() ->scalarNode('level')->defaultValue('DEBUG')->end() ->booleanNode('bubble')->defaultTrue()->end() + ->booleanNode('interactive_only')->defaultFalse()->end() ->scalarNode('app_name')->defaultNull()->end() ->booleanNode('fill_extra_context')->defaultFalse()->end() // sentry ->booleanNode('include_stacktraces')->defaultFalse()->end() @@ -796,6 +799,10 @@ public function getConfigTreeBuilder(): TreeBuilder ->ifTrue(function ($v) { return 'server_log' === $v['type'] && empty($v['host']); }) ->thenInvalid('The host has to be specified to use a ServerLogHandler') ->end() + ->validate() + ->ifTrue(function ($v) { return $v['interactive_only'] && version_compare(InstalledVersions::getVersion('symfony/monolog-bridge'), '7.3.0', '<'); }) + ->thenInvalid('The interactive_only flag is available with symfony/monolog-bridge 7.3.0 or higher') + ->end() ; return $treeBuilder; diff --git a/DependencyInjection/MonologExtension.php b/DependencyInjection/MonologExtension.php index 1d47a984..1456b111 100644 --- a/DependencyInjection/MonologExtension.php +++ b/DependencyInjection/MonologExtension.php @@ -203,6 +203,7 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler $handler['bubble'], $handler['verbosity_levels'] ?? [], $handler['console_formatter_options'], + $handler['interactive_only'], ]); $definition->addTag('kernel.event_subscriber'); break; diff --git a/Resources/config/schema/monolog-1.0.xsd b/Resources/config/schema/monolog-1.0.xsd index b00e969e..9dc49ed0 100644 --- a/Resources/config/schema/monolog-1.0.xsd +++ b/Resources/config/schema/monolog-1.0.xsd @@ -35,6 +35,7 @@ + diff --git a/composer.json b/composer.json index 91b22061..527acdd4 100644 --- a/composer.json +++ b/composer.json @@ -17,6 +17,7 @@ ], "require": { "php": ">=7.2.5", + "composer-runtime-api": "^2.0", "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0", "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", "symfony/config": "^5.4 || ^6.0 || ^7.0",