【问题标题】:Symfony production logsSymfony 生产日志
【发布时间】:2023-03-03 10:59:01
【问题描述】:

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

当前的生产日志配置是

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]

【问题讨论】:

    标签: php symfony monolog


    【解决方案1】:

    您可以为此使用默认的生产设置(取自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 在请求期间缓冲所有消息,但仅在出现错误时将它们写入日志。这样,您就不会一直用嘈杂的调试和信息消息“淹没”您的日志。只有在请求期间出现错误时,您才能获得完整的日志信息。

    【讨论】:

    • 谢谢,很高兴知道这一点。我会试一试并提供反馈。还有“excluded_404s”是我猜的自定义参数名称吗?因此,我还可以创建一个“excluded_localhost”,其模式为 - '(127\.0\.0\.1)(忽略模式)作为附加排除?
    • 感谢@dbrumann .. 这有效,我可以看到 500 个 http 错误日志!!
    猜你喜欢
    • 2013-04-22
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多