Mam pewne problemy z konfiguracją Monolog do obsługi "zagnieżdżonych rejestratorów".Monolog: zapisz różne kanały i wiele programów obsługi do zgrupowanego pliku dziennika + dedykowane pliki dziennika
Co chcę zrobić:
Zaloguj z usług dedykowanych do plików (jeden za usługi) I ze wszystkich usług do jednego pliku. Każdy rejestrator powinien być również obsługiwany przez monolog.handlers.console
.
Dlaczego chcę zrobić
Każda usługa ma logiki, ale można korzystać z innych usług z DI. Chcę wiedzieć, co dokładnie loguje jedna usługa, więc potrzebuję dedykowanego programu rejestrującego (z niestandardowym kanałem i niestandardowym plikiem dziennika) dla każdej usługi. Ale gdy usługi polegają na innych usługach, chcę czytać logi w porządku chronologicznym w jednym pliku.
Co mam
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 }
To nie działa zgodnie z oczekiwaniami. Loguje się do my_service.log
, ale nie do my.log
.
Czy jest możliwość osiągnięcia tego, czego chcę?
Czy rozwiązałeś problem? –
Jeszcze nie, nie miałem wystarczająco czasu, aby z nim eksperymentować. – Wirone
To nie rozwiąże problemu, ale może zaoszczędzić trochę czasu i poprawić obsługę logowań, spróbuj https://www.loggly.com/ – lchachurski