Форматирование строк журнала
У меня проблема с реализацией системы журналирования на основе стандартов PSR-3 (и интерфейсы / классы, поставляемые с ней - https://github.com/php-fig/log).
Я создал несколько классов, расширяющих PSR-3: logger, который использует адаптеры для ведения реальной регистрации (класс logger хранит экземпляр адаптера и вызывает в нем метод log()), и я пришел к файловому адаптеру (адаптеру, который записывает сообщения журнала в файл (ы).)) и я ищу способ реализации пользовательских форматов строк журнала. Я имею в виду, что я мог регистрировать сообщения как
[01/01/2013 12:00:00] NOTICE: Log message content\n
так же как
user: Log message content (NOTICE) ~ 01-01-2013
(полный заказ и содержание)
Кроме того, я хотел бы создать отдельный класс для этого.
Есть ли способ сделать это очень удобным способом, чтобы другие (даже неопытные phpers) не имели проблем с изменением этого?
1 ответ
Может быть, это мейнстрим, но вы смотрели на Монолог
Вы могли бы реализовать HandlerInterface
вместо LoggerInterface
, Форматирование будет решено Monolog, используя ваш шаблон.
Это решение также лучше, так как вы можете использовать ONE Logger и много обработчиков в Monolog.
Есть один минус / минус (вы решаете): вам нужно реализовать регистрацию вашего уровня в обработчике, что может быть немного уродливо.