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
  • Возможность расширения форматирования

Рекомендации по использованию

  1. При настройке логирования:

    • Убедитесь в корректности уровней логирования
    • Проверьте формат временных меток
    • Настройте обработку контекстных данных
  2. При расширении функциональности:

    • Создайте собственный класс-наследник
    • Переопределите метод formatMessage()
    • Сохраните базовую структуру форматирования

На главную | Содержание