How to Configure Monolog to Exclude Specific HTTP Codes from the Log
Edit this pageHow 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:
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'] }]
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>
1 2 3 4 5 6 7 8 9 10 11 12 13
// config/packages/prod/monolog.php
use Symfony\Config\MonologConfig;
return static function (MonologConfig $monolog): void {
$mainHandler = $monolog->handler('main')
// ...
->type('fingers_crossed')
->handler('...')
;
$mainHandler->excludedHttpCode()->code(403);
$mainHandler->excludedHttpCode()->code(404);
};
Caution
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
.
This work, including the code samples, is licensed under a
Creative Commons BY-SA 3.0
license.
TOC
Version
Version: