Como configurar o gerenciador Amqp (por exemplo, para RabbitMQ) com Monolog e Symfony2

Você precisa que o módulo php-amqp esteja habilitado para usar este manipulador.

Primeiro você deve criar alguns serviços:

<parameters>
<parameter key="acme.amqp.connection.parameters" type="collection">
<parameter key="host">localhost</parameter>
<parameter key="login">guest</parameter>
<parameter key="password">guest</parameter>
<parameter key="vhost">/</parameter>
</parameter>
</parameters>

<services>
<service id="acme.amqp.connection" class="AMQPConnection">
<argument>%acme.amqp.connection.parameters%</argument>
<call method="connect" />
</service>

<service id="acme.amqp.channel" class="AMQPChannel">
<argument type="service" id="acme.amqp.connection" />
</service>

<service id="acme.amqp.exchange" class="AMQPExchange">
<argument type="service" id="acme.amqp.channel" />
</service>

<service id="acme.monolog.amqp" class="MonologHandlerAmqpHandler">
<argument type="service" id="acme.amqp.exchange" />
</service>
</services>

do que em seu config_prod.yml adicione o último serviço como um manipulador para Monolog. Esta é minha configuração real:

monolog:
handlers
:
main
:
type
: fingers_crossed
action_level
: error
handler
: grouped
grouped
:
type
: group
members
: [streamed, amqp]
streamed
:
type
: stream
path
: "%kernel.logs_dir%/%kernel.environment%.log"
level
: debug
login
:
type
: stream
path
: "%kernel.logs_dir%/auth.log"
level
: info
channels
: security
amqp
:
type
: service
id
: acmq.monolog.amqp
level
: debug

Basta editá-lo de acordo com suas necessidades e ambiente.