php - 产品中的 symfony dev.log

标签 php symfony monolog

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

我目前的生产环境中有 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 monolog 配置:

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 在 prod 环境中运行此命令。

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

这个答案是对@cerad评论的解释。

关于php - 产品中的 symfony dev.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43549266/

相关文章:

javascript - PHP Javascript - 数组多维错误

php - 如何在 BuzzBrowser post 调用中将文件数据作为 post 参数发送

mysql - 具有 Doctrine 的symfony2无法连接到远程mysql数据库

php - Swiftmailer 发送后删除附件

php - 无法使用新的 MySQL 用户连接到 MySQL

php - 如何从 index.php 调用独白?

php - 更新标记时 Google map 停止重新居中

php - 我如何使用 PHP 运行 cron 作业?

symfony - MonologBu​​ndle 内存泄漏(?)

php - Symfony2 Monolog 配置为使用 raven 处理程序(哨兵)