Symfony 4 was released on November 30th.
Update now to the best Symfony ever!

You are browsing the Symfony 4 documentation, which changes significantly from Symfony 3.x. If your app doesn't use Symfony 4 yet, browse the Symfony 3.4 documentation.

MonologBundle Configuration ("monolog")

MonologBundle Configuration ("monolog")

For a full list of handler types and related configuration options, see Monolog Configuration.

Full Default Configuration

  • YAML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    # config/packages/monolog.yaml
    monolog:
        handlers:
    
            # Examples:
            syslog:
                type:                stream
                path:                /var/log/symfony.log
                level:               ERROR
                bubble:              false
                formatter:           my_formatter
            main:
                type:                fingers_crossed
                action_level:        WARNING
                # By default, buffer_size is unlimited (0), which could
                # generate huge logs.
                buffer_size:         0
                handler:             custom
            console:
                type:                console
                verbosity_levels:
                    VERBOSITY_NORMAL:       WARNING
                    VERBOSITY_VERBOSE:      NOTICE
                    VERBOSITY_VERY_VERBOSE: INFO
                    VERBOSITY_DEBUG:        DEBUG
            custom:
                type:                service
                id:                  my_handler
    
            # Default options and values for some "my_custom_handler"
            # Note: many of these options are specific to the "type".
            # For example, the 'service' type doesn't use any options
            # except id and channels
            my_custom_handler:
                type:                 ~ # Required
                id:                   ~
                priority:             0
                level:                DEBUG
                bubble:               true
                path:                 '%kernel.logs_dir%/%kernel.environment%.log'
                ident:                false
                facility:             user
                max_files:            0
                action_level:         WARNING
                activation_strategy:  ~
                stop_buffering:       true
                buffer_size:          0
                handler:              ~
                members:              []
                channels:
                    type:     ~
                    elements: ~
                from_email:           ~
                to_email:             ~
                subject:              ~
                mailer:               ~
                email_prototype:
                    id:                   ~ # Required (when the email_prototype is used)
                    method:               ~
                formatter:            ~
        # Set to false to use seconds (instead of microseconds) in
        # the logs (gives a small performance boost).
        use_microseconds:             true
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!-- config/packages/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
            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">
    
        <monolog:config use-microseconds="true">
            <monolog:handler
                name="syslog"
                type="stream"
                path="/var/log/symfony.log"
                level="error"
                bubble="false"
                formatter="my_formatter"
            />
    
            <!-- By default, buffer-size is unlimited (0), which could
                 generate huge logs. -->
            <monolog:handler
                name="main"
                type="fingers_crossed"
                action-level="warning"
                handler="custom"
                buffer-size="0"
            />
    
            <monolog:handler
                name="console"
                type="console"
            />
    
            <monolog:handler
                name="custom"
                type="service"
                id="my_handler"
            />
        </monolog:config>
    </container>
    

Note

When the profiler is enabled, a handler is added to store the logs' messages in the profiler. The profiler uses the name "debug" so it is reserved and cannot be used in the configuration.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.