Documentação do Symfony2
Renderizada do repositório symfony-docs-pt-BR no Github
New in version 2.1: A capacidade de especificar os canais para um manipulador específico foi adicionada ao MonologBundle para o Symfony 2.1.
A Edição Standard do Symfony contém vários canais para log: doctrine, event, security e request. Cada canal corresponde a um serviço logger (monolog.logger.XXX) no container e, é injetado no serviço em questão. A finalidade dos canais é de serem capazes de organizar diferentes tipos de mensagens de log.
Por padrão, o Symfony2 realiza o log de todas as mensagens em um único arquivo (independentemente do canal).
Agora, suponha que você queira registrar o canal doctrine para um arquivo diferente.
Para isso, basta criar um novo manipulador (handler) e configurá-lo como segue:
Você pode especificar a configuração de várias formas:
channels: ~ # Include all the channels
channels: foo # Include only channel "foo"
channels: !foo # Include all channels, except "foo"
channels: [foo, bar] # Include only channels "foo" and "bar"
channels: [!foo, !bar] # Include all channels, except "foo" and "bar"
channels:
type: inclusive # Include only those listed below
elements: [ foo, bar ]
channels:
type: exclusive # Include all, except those listed below
elements: [ foo, bar ]
Você pode mudar o canal que monolog faz o log para um serviço de cada vez. Isto é feito adicionando a tag monolog.logger ao seu serviço e especificando qual canal o serviço deve fazer o log. Ao fazer isso, o logger que é injetado naquele serviço é pré-configurado para usar o canal que você especificou.
Para mais informações - incluindo um exemplo completo - leia “Usando um canal próprio para logging com o Monolog” na seção de referência das Tags de Injeção de Dependência.