产品中的 symfony dev.log

symfony dev.log in prod

我在 Whosebug 中有类似的问题,但没有看到答案。

我目前的生产环境中有 dev.log 和 prod.log,我不明白为什么。我应该只有 prod.log.

我的dev.log只包含这个(每2分钟重复一次):

[2017-04-21 17:50:02] event.DEBUG: Notified event "console.command" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". [] []
[2017-04-21 17:50:02] doctrine.DEBUG: SELECT e0_.id AS id0, e0_.name AS name1, e0_.progress AS progress2, e0_.path AS path3, e0_.data AS data4, e0_.created_at AS created_at5, e0_.updated_at AS updated_at6, (SELECT COUNT(e1_.id) AS dctrn__1 FROM export e1_ WHERE e1_.progress > 0 AND e1_.progress < 100) AS sclr7, e0_.organization_id AS organization_id8, e0_.owner_id AS owner_id9 FROM export e0_ WHERE e0_.progress = 0 HAVING sclr7 = 0 LIMIT 1 [] []
[2017-04-21 17:50:02] event.DEBUG: Notified event "console.terminate" to listener "Symfony\Bundle\SwiftmailerBundle\EventListener\EmailSenderListener::onTerminate". [] []

这是我的 config_dev.yml 和 config_prod.yml 独白配置:

config_dev:

monolog:
  handlers:
    main:
      type:  stream
      path:  %kernel.logs_dir%/%kernel.environment%.log
      level: debug

config_prod:

monolog:
  handlers:
    main_critical:
      type:         fingers_crossed
      action_level: critical
      handler:      buffered_critical
    buffered_critical:
      type:    buffer
      handler: swift_critical
    swift_critical:
      type:       swift_mailer
      from_email: %error_mail_sender%
      to_email:   %error_mail_recipients%
      subject:    An error occurred
      level:      debug
    main_error:
      type:         fingers_crossed
      action_level: error
      handler:      grouped_error
    grouped_error:
      type:    group
      members: [streamed]
    streamed:
      type:  stream
      path:  "%kernel.logs_dir%/%kernel.environment%.log"
      level: debug

我注意到日志显示控制台命令发生,并且有一个 cronjob 每两分钟运行一次命令,但我不知道为什么会这样 dev.log...

非常感谢您的帮助, 干杯

默认情况下,Symfony 命令在开发环境中执行,这就是为什么它使用您的开发环境配置将各种日志存储在 dev.log 文件中的原因。

你需要在你的 Symfony 命令中使用 --env=prod 标志来明确告诉 Symfony 运行 在生产环境中使用这个命令。

注意: 因此,如果您通过 cron 运行ning 命令,请在命令末尾添加 --env=prod 标志。

此回答是对@cerad 评论的解释。