регистрировать только определенные журналы с монологом, используя канал в Symfony

Мне трудно понять, как настроить ведение журнала в моем приложении 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

Я тогда определил это в моем services.yml

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 }

Желаемое поведение для только error журналы для входа %kernel.logs_dir%/%kernel.environment%.log а потом я хотел бы ввести регистратор в мой DynamicResponseProvider что входит в %kernel.logs_dir%/%kernel.environment%_dynamic.log, Документация смущает меня. В нем говорится следующее:

configuration defines a stack of handlers which will be called in the order where they are defined

Значит ли это, что у меня есть dynamic_request определен обработчик любой логи отладки будут регистрироваться здесь? Это не мое желаемое поведение. То, что я хотел бы, это только DynamicResponseProvider будет использовать этот обработчик. Как я могу достичь этого?

0

Решение

Вы можете указать канал для обработчика.
Итак, если вы хотите, чтобы обработчик dynamic_request использовался только для журналов dynamic_request, ваш config.yml должен быть:

  dynamic_request:
type:  stream
path:  "%kernel.logs_dir%/%kernel.environment%_dynamic.log"level: debug
channels: dynamic_request

Увидеть http://symfony.com/doc/current/cookbook/logging/channels_handlers.html для большего примера

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]