2013-02-16 2 views
0

У меня возникла проблема с внедрением системы регистрации на основе стандартов PSR-3 (и интерфейсов/классов, поставляемых вместе с ней - https://github.com/php-fig/log).Форматирование строк журнала

Я создал несколько классов, расширяющих PSR-3: регистратор, который использует адаптеры для фактического ведения журнала (в нем хранится экземпляр адаптера экземпляра и метод журнала вызовов()), и я пришел к файловому адаптеру (адаптер, который записывает сообщения журнала в файл (ы)), и я ищу способ реализовать пользовательские форматы строк журнала. Я имею в виду, что я мог бы войти сообщения как

[01/01/2013 12:00:00] NOTICE: Log message content\n

, а также

user: Log message content (NOTICE) ~ 01-01-2013

(полный пользовательский порядок и содержание)

Кроме того, я хотел бы создать отдельный класс для что.

Есть ли способ сделать это очень легко, так что другие (даже низкоквалифицированные специалисты) не будут иметь проблемы с изменением этого?

+0

Независимо от того, как вы «напишите», люди найдут способ завинтить его. Беспокойство о кодеках с низким уровнем квалификации, читающих ваш код, является пустой тратой времени. –

+0

Хорошо, поэтому я думал о чем-то вроде массива элементов (как key => value) и формате сообщения как нечто вроде «[{date}] {level}: {message} \ n '. Строка сообщения заменяет тег '{message}', тег уровня журнала {level} ', а остальное будет настраиваться. Также для динамических значений (например, даты) мне нужно будет проверить, является ли значение вызываемым. Как вы думаете, это хорошая идея? –

ответ

0

Может быть, это мейнстрим, но вы смотрели на Monolog

Вы могли бы реализовать HandlerInterface вместо LoggerInterface. Форматирование будет разрешено Monolog, используя ваш шаблон.

Это решение также лучше, поскольку вы можете использовать ONE Logger и многие обработчики в монологе.

Существует один недостаток/вверх (вы решили): вы должны реализовать свой уровень регистрации в обработчике, что может быть немного уродливым.

Смежные вопросы