【问题标题】:Monolog is not starting on production settings under symfony2Monolog 未在 symfony2 下的生产设置上启动
【发布时间】:2012-11-16 14:48:06
【问题描述】:

当运行带有生产设置和调试禁用的应用程序时,独白不会启动。 启用调试后,它会照常启动。使用开发设置,无论调试选项如何,它都会启动。

如何在禁用调试的情况下强制在生产设置上运行独白?

开发和生产配置相同:

monolog:
    handlers:

    main:
        type:   stream
        path:   %kernel.logs_dir%/%kernel.environment%.log
        level:  debug
    firephp:
        type:   firephp
        level:  info
    custom:
        type:   service
        id:     monitoring.errbit
        level:  critical

在开发设置中独白运行完美,在生产中它甚至无法启动。

【问题讨论】:

  • 你怎么知道它不启动?为什么你认为它应该开始?
  • 首先它没有捕获触发的错误。所以我将 die() 添加到处理程序的构造函数中。当我设置开发环境时,我可以看到它在运行。
  • 我假设你会失踪而死。为什么你认为它应该开始?
  • 默认情况下 symfony 在生产中使用 "crossfingers" 处理程序,因此日志仅在抛出期望时显示,然后所有日志缓冲区都被转储。如果是你的情况,请检查这个。
  • @Maks3w 正如您在配置中看到的那样,没有 crossfingers 处理程序。

标签: php symfony monolog


【解决方案1】:

默认 Symfony2 配置包含 config_prod 和 config_dev 的不同处理程序。如果你把它放在 config.yml 中,你应该确保你删除了 config_prod.yml 中的独白配置块,否则它将覆盖 config.yml 中的那个。

除此之外,就 monolog 而言,prod 和 dev 之间确实没有区别,除非您将内核中的 bundle 更改为仅在 dev/test 中启用,但这不是默认设置。

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 2020-01-24
    • 2022-01-18
    • 1970-01-01
    • 2012-05-02
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    相关资源
    最近更新 更多