interfaces/ILogFormatter.md


Интерфейс ILogFormatter

Пространство имён: goodboyalex\php_components_pack\interfaces
Версия: 1.0
Доступно с: 1.3

Описание

Интерфейс определяет контракт для форматеров журнала сообщений, которые могут форматировать сообщения системы журналирования в соответствии с заданными правилами.

Методы интерфейса

formatMessage()

public function formatMessage(MessageType $level, string $message, array $context = []): string

Описание: Форматирует сообщение согласно заданным параметрам.

Параметры:

  • $level (MessageType) — уровень сообщения (DEBUG, INFO, WARNING, ERROR)
  • $message (string) — текст сообщения
  • $context (array) — контекстные данные сообщения (опционально)

Возвращаемое значение:

  • string — отформатированное сообщение

Рекомендации по реализации

  1. При реализации интерфейса:

    • Учитывайте уровень сообщения при форматировании
    • Обрабатывайте контекстные данные
    • Обеспечьте читаемость и структурированность вывода
  2. При использовании:

    • Применяйте различные форматы для разных уровней
    • Используйте контекст для дополнительной информации
    • Обеспечьте консистентность формата

Примеры реализации

Базовый форматер

class SimpleLogFormatter implements ILogFormatter
{
    public function formatMessage(MessageType $level, string $message, array $context = []): string
    {
        return sprintf(
            '[%s] %s',
            $level->toString(),
            $message
        );
    }
}

Расширенный форматер

class DetailedLogFormatter implements ILogFormatter
{
    public function formatMessage(MessageType $level, string $message, array $context = []): string
    {
        $formattedContext = !empty($context) ? json_encode($context) : '';
        return sprintf(
            '[%s] %s | Контекст: %s',
            date('Y-m-d H:i:s'),
            $level->toString(),
            $message,
            $formattedContext
        );
    }
}

Особенности реализации

  • Формат сообщения должен быть читаемым
  • Учитывайте производительность при работе с большими логами
  • Обеспечьте возможность настройки формата
  • Поддерживайте различные уровни детализации

Типичные ошибки

  • Отсутствие обработки контекста
  • Некорректное форматирование специальных символов
  • Потеря важной информации при форматировании

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