【问题标题】:symfony2 monolog command output to console in devsymfony2 monolog 命令输出到 dev 中的控制台
【发布时间】:2025-12-27 02:00:06
【问题描述】:

我正在尝试在 Symfony2 中设置一个控制台命令,以便它记录到我的开发环境中的控制台,但记录到 prod 中的日志文件。

所以我的 config_prod.yml 有这个:

monolog:
    handlers:
        payment:
            type:  stream
            path:  %kernel.logs_dir%/payment.log
            channels: payment

而我的 config_dev.yml 使用这个:

monolog:
    handlers:
        console:
            type:   console
            channels: payment

服务在 services.yml 中定义如下:

payment_manager:
    class:      My\Bundle\Service\PaymentManager
    arguments:  [@doctrine.orm.entity_manager, @logger]
    tags:
        - { name: monolog.logger, channel: payment }

令我惊讶的是,这并没有蹲下。输出到 app/logs/dev.log 而不是控制台。为什么?

【问题讨论】:

  • 许多天后,我仍然完全迷失了方向,只是在我看来控制台处理程序根本不起作用。这可能吗?

标签: symfony monolog


【解决方案1】:

事实证明,“控制台”实际上根本不是控制台,而是“浏览器的 javascript 控制台”。

如果您是因为有同样的问题而来到这里,请按照以下方法进行:

    output:
        type:       stream
        path:       php://stdout
        level:      info

【讨论】: