Symfony 生产日志

Symfony production logs

在 Symfony 3 中,我是否可以在不打开调试模式的情况下将所有错误写入生产日志?错误将包括 http 500 错误或应用程序错误或 php 由于错误标志在生产中设置为 false 而被静音的错误。

当前的生产日志配置是

monolog:
    handlers:
        main:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: info
            channels: [!request, !event, !translation, !kernel, !security, !php, !snc_redis]
       php:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%_php.log"
            level: warning
            channels: [php]

您可以为此使用默认生产设置(取自 monolog-bundle recipe):

monolog:
    handlers:
        main:
            type: fingers_crossed
            action_level: error
            handler: nested
            excluded_404s:
                # regex: exclude all 404 errors from the logs
                - ^/
        nested:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug

此配置发生的情况是 Monolog 在请求期间缓冲所有消息,但仅在出现错误时才将它们写入日志。这样你就不会 "flood" 你的日志中一直有嘈杂的调试和信息消息。只有在请求过程中出现错误时,您才会获得完整的日志信息。