【发布时间】:2019-11-02 21:54:49
【问题描述】:
我在 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”, 当我调试容器时,我看到列出了我的服务 我做错了什么?
【问题讨论】:
-
我发现了错误。默认情况下,config/services.yaml 将覆盖来自外部文件的所有配置。这就是为什么我的日志继续位于默认通道(自动装配)上的原因。为避免这种情况,您必须从自动装配中排除记录器自定义文件
-
您能否将您的评论复制到新答案中,然后将其标记为选中?顺便说一句,很好的发现,很高兴知道。
-
我已将其粘贴为评论
标签: php symfony logging monolog