Php 仅使用symfony中的通道使用monolog记录某些日志
我很难理解如何在我的symfony应用程序中配置日志以完成我需要的任务。我不理解处理程序和通道之间的区别/关系。我的Php 仅使用symfony中的通道使用monolog记录某些日志,php,symfony,monolog,Php,Symfony,Monolog,我很难理解如何在我的symfony应用程序中配置日志以完成我需要的任务。我不理解处理程序和通道之间的区别/关系。我的config.yml中有以下内容 monolog: handlers: main: type: fingers_crossed action_level: error handler: nested nested: type: stream
config.yml中有以下内容
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
dynamic_request:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%_dynamic.log"
level: debug
jsonstub.dynamic.response_provider:
class: ProgrammingAreHard\JsonStub\CoreBundle\Domain\Dynamic\EventListener\DynamicResponseProvider
arguments:
- @security.context
- @logger
- %kernel.environment%
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onAuthentication }
- { name: monolog.logger, channel: dynamic_request }
然后,我在我的服务.yml
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
dynamic_request:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%_dynamic.log"
level: debug
jsonstub.dynamic.response_provider:
class: ProgrammingAreHard\JsonStub\CoreBundle\Domain\Dynamic\EventListener\DynamicResponseProvider
arguments:
- @security.context
- @logger
- %kernel.environment%
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onAuthentication }
- { name: monolog.logger, channel: dynamic_request }
所需的行为是只将日志记录到%kernel.logs\u dir%/%kernel.environment%.log
中,然后我想将一个日志插入我的DynamicResponseProvider
中,该日志记录到%kernel.logs\u dir%/%kernel.environment%\u dynamic.log
。文件让我很困惑。它声明如下:
configuration定义了一组处理程序,这些处理程序将按其定义的顺序调用
这是否意味着因为我定义了dynamic\u请求处理程序,所以任何调试日志都将记录在这里?那不是我想要的行为。我希望只有DynamicResponseProvider
将使用该处理程序。我怎样才能做到这一点 您可以为处理程序指定通道。
因此,如果希望“dynamic_request”处理程序仅用于“dynamic_request”日志,则config.yml必须为:
dynamic_request:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%_dynamic.log"
level: debug
channels: dynamic_request
有关更多示例,请参见