diff --git a/src/Symfony/Bridge/Monolog/CHANGELOG.md b/src/Symfony/Bridge/Monolog/CHANGELOG.md index b56fc6d70d864..6d984c218a4d6 100644 --- a/src/Symfony/Bridge/Monolog/CHANGELOG.md +++ b/src/Symfony/Bridge/Monolog/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +4.2.0 +----- + + * added `ProcessorInterface`: an optional interface to allow autoconfiguration of Monolog processors + 4.1.0 ----- diff --git a/src/Symfony/Bridge/Monolog/Processor/ProcessorInterface.php b/src/Symfony/Bridge/Monolog/Processor/ProcessorInterface.php new file mode 100644 index 0000000000000..3b470992fc2f8 --- /dev/null +++ b/src/Symfony/Bridge/Monolog/Processor/ProcessorInterface.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\Monolog\Processor; + +/** + * An optional interface to allow autoconfiguration of Monolog processors. + * + * @author Nicolas Grekas + */ +interface ProcessorInterface +{ + /** + * @return array The processed records + */ + public function __invoke(array $records); +} diff --git a/src/Symfony/Bridge/Monolog/Processor/TokenProcessor.php b/src/Symfony/Bridge/Monolog/Processor/TokenProcessor.php index 11547be22b2ee..87c52c6a0d39f 100644 --- a/src/Symfony/Bridge/Monolog/Processor/TokenProcessor.php +++ b/src/Symfony/Bridge/Monolog/Processor/TokenProcessor.php @@ -18,7 +18,7 @@ * * @author Dany Maillard */ -class TokenProcessor +class TokenProcessor implements ProcessorInterface { private $tokenStorage; diff --git a/src/Symfony/Bridge/Monolog/Processor/WebProcessor.php b/src/Symfony/Bridge/Monolog/Processor/WebProcessor.php index 9c32e756c514e..671e7e57286af 100644 --- a/src/Symfony/Bridge/Monolog/Processor/WebProcessor.php +++ b/src/Symfony/Bridge/Monolog/Processor/WebProcessor.php @@ -21,7 +21,7 @@ * * @author Jordi Boggiano */ -class WebProcessor extends BaseWebProcessor implements EventSubscriberInterface +class WebProcessor extends BaseWebProcessor implements EventSubscriberInterface, ProcessorInterface { public function __construct(array $extraFields = null) { diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index b5f4b4d9c366c..b3908ace88487 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -14,6 +14,7 @@ use Doctrine\Common\Annotations\Reader; use Doctrine\Common\Annotations\AnnotationRegistry; use Symfony\Bridge\Monolog\Processor\DebugProcessor; +use Symfony\Bridge\Monolog\Processor\ProcessorInterface; use Symfony\Bridge\Twig\Extension\CsrfExtension; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\Controller; @@ -324,6 +325,8 @@ public function load(array $configs, ContainerBuilder $container) ->addTag('kernel.event_subscriber'); $container->registerForAutoconfiguration(ResettableInterface::class) ->addTag('kernel.reset', array('method' => 'reset')); + $container->registerForAutoconfiguration(ProcessorInterface::class) + ->addTag('monolog.processor'); $container->registerForAutoconfiguration(PropertyListExtractorInterface::class) ->addTag('property_info.list_extractor'); $container->registerForAutoconfiguration(PropertyTypeExtractorInterface::class)