编程语言
首页 > 编程语言> > php – 为什么Symfony仍然登录到dev.log文件,即使我没有在loghandler中定义它?

php – 为什么Symfony仍然登录到dev.log文件,即使我没有在loghandler中定义它?

作者:互联网

在执行Symfony命令期间,我想将消息记录到另一个文件.我已经阅读了Symfony和Monolog文档,它应该像我在这里描述的那样工作. (请注意,我知道来自’doctrine’,’event’,…频道的消息仍将由主处理程序记录,但这对我来说无关紧要)

在我的config.yml中,我有这个:

monolog:
    channels: [commandline]
    handlers:
        main:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%.main.log"
            level: debug
            channels: [!commandline]
        commandline:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%.commandline.log"
            level: debug
            channels: commandline
        stdout:
            type:  stream
            path:  "php://stdout"
            level: debug
            channels: commandline
        mail:
            type:         stream
            action_level: alert
            handler:      buffered_mail
        buffered_mail:
            type:    buffer
            handler: swift
        swift:
            type:       swift_mailer
            from_email: some@email.com
            to_email:   some@email.com
            subject:    "Something went wrong"
            level:      alert

我期待有2个日志文件:dev.main.log和dev.commandline.log.
但我仍然有第三个日志文件:dev.log记录所有消息.
我似乎没有找到定义loghandler的位置以及如何阻止它记录事物……

如果有人能指出我正确的方向,那就太好了!

顺便说一句,我正在使用:

> symfony 2.3
> monolog-bundle 2.4

编辑

config_dev.yml中没有monolog部分

解决方法:

从config_dev.yml中删除monolog.handlers.mainfrom.

它通常包含path: "%kernel.logs_dir%/%kernel.environment%.log"

config _dev.yml(默认)

monolog:
    handlers:
        main:   # <- remove this handler
            type:   stream
            path:   "%kernel.logs_dir%/%kernel.environment%.log" #<- logs/dev.log
            level:  debug

从此配置文件中删除主处理程序.

标签:php,symfony,logging,monolog
来源: https://codeday.me/bug/20190517/1120895.html