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",