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],
            ],
        ],
    ]);
    

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.