How to Configure Monolog to Exclude Specific HTTP Codes from the Log¶
Sometimes your logs become flooded with unwanted HTTP errors, for example,
403s and 404s. When using a fingers_crossed
handler, you can exclude
logging these HTTP codes based on the MonologBundle configuration:
- YAML
1 2 3 4 5 6 7 8
# config/packages/prod/monolog.yaml monolog: handlers: main: # ... type: fingers_crossed handler: ... excluded_http_codes: [403, 404, { 400: ['^/foo', '^/bar'] }]
- XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
<!-- config/packages/prod/monolog.xml --> <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 https://symfony.com/schema/dic/services/services-1.0.xsd http://symfony.com/schema/dic/monolog https://symfony.com/schema/dic/monolog/monolog-1.0.xsd"> <monolog:config> <monolog:handler type="fingers_crossed" name="main" handler="..."> <!-- ... --> <monolog:excluded-http-code code="403"> <monolog:url>^/foo</monolog:url> <monolog:url>^/bar</monolog:url> </monolog:excluded-http-code> <monolog:excluded-http-code code="404"/> </monolog:handler> </monolog:config> </container>
- PHP
1 2 3 4 5 6 7 8 9 10 11
// config/packages/prod/monolog.php $container->loadFromExtension('monolog', [ 'handlers' => [ 'main' => [ // ... 'type' => 'fingers_crossed', 'handler' => ..., 'excluded_http_codes' => [403, 404], ], ], ]);
ご用心
Combining excluded_http_codes
with a passthru_level
lower than
error
(i.e. debug
, info
, notice
or warning
) will not
actually exclude log messages for those HTTP codes because they are logged
with level of error
or higher and passthru_level
takes precedence
over the HTTP codes being listed in excluded_http_codes
.