Sono di fronte ad alcuni problemi con la configurazione di Monolog per gestire "logger annidati".Monolog: registra diversi canali e più gestori per file di registro raggruppati + file di registro dedicati
quello che voglio fare:
Log dai servizi ai file dedicati (uno per il servizio) E da tutti i servizi di un unico file. Ogni logger dovrebbe essere gestito anche da monolog.handlers.console
.
per questo che voglio fare
Ogni servizio ha logica, ma possono utilizzare altri servizi da DI. Voglio sapere che cosa registra esattamente un servizio, quindi voglio logger dedicato (con canale personalizzato e file di registro personalizzato) per ogni servizio. Ma quando i servizi si basano su altri servizi, voglio leggere i registri in ordine cronologico in un unico file.
Quello che ho
app/config.yml
:
monolog:
handlers:
my_handler:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.my.log
level: info
handler: my_bundle_handler
src/My/Bundle/Resources/config/config.yml
services:
# LOGGERS
my_logger:
class: Symfony\Bridge\Monolog\Logger
arguments: [my_logger]
calls:
- [pushHandler, [@monolog.handler.console]]
- [pushHandler, [@my_bundle_handler]]
tags:
- { name: monolog.logger, channel: my_channel}
# HANDLERS
my_bundle_handler:
abstract: true # Without it it will throw exception
type: group
members: [my_service_handler]
channels: ["my_channel"]
tags:
- { name: log_handler }
my_service_handler:
class: Monolog\Handler\StreamHandler
arguments: [%kernel.logs_dir%/%kernel.environment%.my_service.log, 100]
channels: ["my_channel"]
tags:
- { name: log_handler }
non funziona come previsto. Si registra su my_service.log
, ma non su my.log
.
C'è possibilità di ottenere ciò che voglio?
Hai risolto il problema? –
Non ancora, non ho avuto abbastanza tempo per sperimentarlo .. – Wirone
Non risolverà il problema, ma potrebbe farti risparmiare tempo e migliorare l'esperienza di gestione dei registri, prova https://www.loggly.com/ – lchachurski