Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅使用symfony中的通道使用monolog记录某些日志_Php_Symfony_Monolog - Fatal编程技术网

Php 仅使用symfony中的通道使用monolog记录某些日志

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

我很难理解如何在我的symfony应用程序中配置日志以完成我需要的任务。我不理解处理程序和通道之间的区别/关系。我的
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
有关更多示例,请参见