Универсальная библиотека логирования для проектов CostBuilder
Find a file
2026-04-24 11:20:33 +03:00
Examples Начальная версия CostBuilder.Logger - универсальная библиотека логирования с цветовой подсветкой 2026-04-24 10:50:10 +03:00
Source Исправлена совместимость с Delphi 10.3 - заменены case на if-else для строк 2026-04-24 11:19:33 +03:00
.gitignore Начальная версия CostBuilder.Logger - универсальная библиотека логирования с цветовой подсветкой 2026-04-24 10:50:10 +03:00
boss.json Обновлена версия до 1.0.1 в boss.json 2026-04-24 11:20:33 +03:00
README.md Начальная версия CostBuilder.Logger - универсальная библиотека логирования с цветовой подсветкой 2026-04-24 10:50:10 +03:00

CostBuilder Logger

Универсальная библиотека логирования для проектов CostBuilder с цветовой подсветкой в консоли.

Возможности

  • 5 уровней логирования: DEBUG, INFO, WARN, ERROR, FATAL
  • Цветовая подсветка в консоли (Windows)
  • Запись в файл, консоль или оба одновременно
  • Thread-safe операции
  • Настраиваемый формат сообщений
  • Автоматическое создание директории логов
  • Без внешних зависимостей

Установка

Через Boss Package Manager

boss install git.costbuilder.ru/costbuilder/costbuilder_logger

Вручную

Добавьте путь к Source директории в настройках проекта:

Project > Options > Delphi Compiler > Search Path

Использование

Базовое использование

uses
  CostBuilder.Logger;

begin
  // Логирование с автоматической конфигурацией
  TCostBuilderLogger.Info('Application started', 'Main');
  TCostBuilderLogger.Debug('Debug information', 'Module');
  TCostBuilderLogger.Warn('Warning message', 'Service');
  TCostBuilderLogger.Error('Error occurred', 'Database');
  TCostBuilderLogger.Fatal('Critical error', 'System');
end;

Конфигурация

uses
  CostBuilder.Logger;

begin
  // Настройка логгера
  TCostBuilderLogger.Configure(
    llInfo,                    // Минимальный уровень
    ltBoth,                    // Консоль и файл
    'logs/myapp.log',          // Путь к файлу
    '[%TIMESTAMP%] [%LEVEL%] [%CONTEXT%] %MESSAGE%'  // Формат
  );
  
  TCostBuilderLogger.Info('Server started', 'Router');
end;

Интеграция с DotEnv

uses
  CostBuilder.Logger,
  DotEnv4Delphi;

var
  LLevel: TLogLevel;
  LTarget: TLogTarget;
  
begin
  // Загрузка из .env
  DotEnv.LoadFromFile('.env');
  
  // Парсинг уровня
  case UpperCase(DotEnv.Env('LOG_LEVEL', 'INFO')) of
    'DEBUG': LLevel := llDebug;
    'WARN':  LLevel := llWarn;
    'ERROR': LLevel := llError;
    'FATAL': LLevel := llFatal;
  else
    LLevel := llInfo;
  end;
  
  // Парсинг target
  case UpperCase(DotEnv.Env('LOG_TARGET', 'BOTH')) of
    'CONSOLE': LTarget := ltConsole;
    'FILE':    LTarget := ltFile;
  else
    LTarget := ltBoth;
  end;
  
  // Конфигурация
  TCostBuilderLogger.Configure(
    LLevel,
    LTarget,
    DotEnv.Env('LOG_FILE', 'logs/app.log'),
    DotEnv.Env('LOG_FORMAT', '[%TIMESTAMP%] [%LEVEL%] [%CONTEXT%] %MESSAGE%')
  );
end;

Уровни логирования

Уровень Цвет консоли Описание
DEBUG Серый Детальная диагностическая информация
INFO Зелёный Общие информационные сообщения
WARN Жёлтый Предупреждения о потенциальных проблемах
ERROR Красный Ошибки, не критичные для работы
FATAL Красный фон Критические ошибки

Формат сообщений

Доступные placeholders:

  • %TIMESTAMP% - временная метка (yyyy-mm-dd hh:nn:ss.zzz)
  • %LEVEL% - уровень логирования
  • %CONTEXT% - контекст (модуль/компонент)
  • %MESSAGE% - текст сообщения

Пример формата:

[%TIMESTAMP%] [%LEVEL%] [%CONTEXT%] %MESSAGE%

Результат:

[2026-04-24 10:15:30.123] [INFO ] [Router] Server is running on port 9000

Targets

  • ltConsole - только вывод в консоль
  • ltFile - только запись в файл
  • ltBoth - консоль и файл одновременно

Thread Safety

Библиотека использует TCriticalSection для обеспечения потокобезопасности при записи логов.

Совместимость

  • Delphi 10.3+
  • Windows (с цветовой подсветкой)
  • Linux/macOS (без цветов)

Лицензия

Commercial - CostBuilder

Версия

1.0.0