generated from costbuilder/a0rest-api-contract
Универсальная библиотека логирования для проектов CostBuilder
| Examples | ||
| Source | ||
| .gitignore | ||
| boss.json | ||
| README.md | ||
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