MonologBundle registra tutto utilizzando gli stessi gestori per l'intero framework. Ciò significa che se uno dei tuoi servizi deve accedere a gestori diversi, è necessario creare il proprio Logger/Gestore e iniettarlo nel servizio.
Questo potrebbe essere un esempio di configurazione (in YAML):
services:
my_logger:
class: Symfony\Bridge\Monolog\Logger
arguments: [soap]
calls:
- [pushHandler, [@my_handler]]
my_handler:
class: Monolog\Handler\StreamHandler
# 200 = INFO, see Monolog::Logger for the values of log levels
arguments: [%kernel.root_dir%/%kernel.environment%.soap.log, 200]
soap_service:
class: Your\Soap\Client
arguments: [@my_logger]
Spero che questo chiarisce.
Update: Da symfony 2.1, è anche possibile configurare i canali di ricezione che i gestori, così si potrebbe in alternativa, fare qualcosa di simile:
services:
soap_service:
class: Your\Soap\Client
arguments: [@logger]
tags:
- { name: monolog.logger, channel: soap }
che crea un nuovo canale di sapone (cioè logger esempio la ricezione di tutti i gestori), poi per configurare diversi gestori per questo canale:
monolog:
handlers:
main:
type: stream
path: %kernel.root_dir%/%kernel.environment%.log
level: error
channels: [!soap]
soap:
type: stream
path: %kernel.root_dir%/%kernel.environment%.soap.log
level: info
channels: [soap]
questo significa che il gestore principale riceverà tutto, ma il canale di sapone, e il gestore di sapone riceveranno solo il modo canale ap. È anche possibile rimuovere la chiave channels
sul gestore principale se si desidera che il proprio file di registro principale disponga di tutto, ma anche di avere una copia separata dei log del sapone separatamente. Questo porta molta flessibilità e, come vedi, i canali sono una matrice in modo da poter elencare i canali che desideri o utilizzare la notazione nera !name
per escluderne alcuni e includere tutto il resto.
Sono molto interessato alla risposta. Ho fatto una domanda simile qualche settimana fa: http://stackoverflow.com/questions/7714790/custom-monolog-logging-channel-in-symfony2-command – Reuven