Monolog不会写入正确的日志文件

时间:2019-06-20 06:02:10

标签: php symfony logging monolog

我正在使用Symfony 4,我想为许多日志类型创建一个专用通道: 这是我对通道和处理程序的配置:

 monolog:
  channels: ["channel1", "channel2"]

  handlers:
    channel1:
      level: debug
      type:  stream
      path:  "%kernel.logs_dir%/channel1.log"
      channels: ["channel"]

    channel2:
      level: debug
      type:  stream
      path:  "%kernel.logs_dir%/channel2.log"
      channels: ["channel2"]

然后,在写日志的服务中,我注入了自定义

 services:
  _defaults:
    autowire: true
    autoconfigure: true
  Infrastructure\Logger\Channel1Logger:
    arguments:
       - '@monolog.logger.channel1'

  Infrastructure\Logger\Channel2Logger:
    arguments:
      - '@monolog.logger.channel2'

但是,我所有的日志都直接写入了“ app”频道, 调试容器时,我看到了列出的服务 我在做什么错了?

1 个答案:

答案 0 :(得分:1)

我发现了错误。默认情况下,config / services.yaml将覆盖外部文件中的所有配置。这就是为什么我的日志继续位于默认通道(自动装配)的原因。为了避免这种情况,您必须从自动装配中排除记录器自定义文件