WARNING:
You are browsing the documentation for Symfony 2.8 which is not maintained anymore.
Consider upgrading your projects to Symfony 5.2.
How to Define a Custom Logging Formatter
How to Define a Custom Logging Formatter¶
Each logging handler uses a Formatter
to format the record before logging
it. All Monolog handlers use an instance of
Monolog\Formatter\LineFormatter
by default but you can replace it
easily. Your formatter must implement
Monolog\Formatter\FormatterInterface
.
- YAML
1 2 3 4 5 6 7 8 9 10
# app/config/config.yml services: my_formatter: class: Monolog\Formatter\JsonFormatter monolog: handlers: file: type: stream level: debug formatter: my_formatter
- XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
<!-- app/config/config.xml --> <?xml version="1.0" encoding="UTF-8" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:monolog="http://symfony.com/schema/dic/monolog" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd http://symfony.com/schema/dic/monolog http://symfony.com/schema/dic/monolog/monolog-1.0.xsd"> <services> <service id="my_formatter" class="Monolog\Formatter\JsonFormatter" /> </services> <monolog:config> <monolog:handler name="file" type="stream" level="debug" formatter="my_formatter" /> </monolog:config> </container>
- PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// app/config/config.php use Monolog\Formatter\JsonFormatter; $container->register('my_formatter', JsonFormatter::class); $container->loadFromExtension('monolog', array( 'handlers' => array( 'file' => array( 'type' => 'stream', 'level' => 'debug', 'formatter' => 'my_formatter', ), ), ));
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.