log_formatters
Класс DefaultLogFormatter
Пространство имён: goodboyalex\php_components_pack\log_formatters
Версия: 1.0
Доступно с: 1.3
Описание
Класс реализует базовую реализацию интерфейса ILogFormatter для форматирования сообщений системы журналирования.
Реализация метода formatMessage()
public function formatMessage(MessageType $level, string $message, array $context = []): string
{
// Задаю базовую информацию
$result = sprintf(
'%s [%s] %s',
date('Y-m-d H:i:s'),
strtoupper($level->toString()),
$message
);
// Если контекст не пуст
if (!empty($context))
// - то выдаю контекст
$result .= ' | ' . json_encode($context, JSON_UNESCAPED_UNICODE);
// Возвращаю результат
return $result;
}
Примеры форматирования
Базовый пример
$formatter = new DefaultLogFormatter();
$message = $formatter->formatMessage(
MessageType::INFO,
'Операция выполнена успешно'
);
// Результат:
// 2025-12-10 12:00:00] [INFO] Операция выполнена успешно
Пример с контекстом
$formatter = new DefaultLogFormatter();
$message = $formatter->formatMessage(
MessageType::ERROR,
'Произошла ошибка',
[
'user_id' => 123,
'error_code' => 404
]
);
// Результат:
// 2025-12-10 12:00:00] [ERROR] Произошла ошибка | {"user_id":123,"error_code":404}
Особенности реализации
- Автоматическое добавление временной метки
- Поддержка различных уровней логирования
- Обработка контекстных данных в формате JSON
- Возможность расширения форматирования
Рекомендации по использованию
-
При настройке логирования:
- Убедитесь в корректности уровней логирования
- Проверьте формат временных меток
- Настройте обработку контекстных данных
-
При расширении функциональности:
- Создайте собственный класс-наследник
- Переопределите метод formatMessage()
- Сохраните базовую структуру форматирования