.\" Страница руководства для библиотеки singlog .TH SINGLOG 3 "23 марта 2025" "singlog" "Руководство программиста" .SH ИМЯ singlog \- Библиотека логирования с singleton-паттерном, потокобезопасностью и гибкими целями вывода .SH СИНТАКСИС .nf import singlog; Log logger = Log.msg; // Получение singleton-экземпляра log.<метод>(<аргументы>); // Использование глобального алиаса .fi .SH ОПИСАНИЕ Библиотека \fBsinglog\fR предоставляет потокобезопасную утилиту логирования на основе singleton-паттерна, предназначенную для кроссплатформенного использования в системах Windows и POSIX. Поддерживает несколько целей вывода (syslog, stdout/stderr, файл), настраиваемые уровни логирования и опциональный цветной вывод в консоль. Библиотека использует плавный интерфейс для удобной настройки и предоставляет короткие алиасы для распространенных уровней логирования. .SH ОСОБЕННОСТИ .TP .B Потокобезопасность Использует \fBMutex\fR для обеспечения безопасного логирования в многопоточных приложениях. .TP .B Кроссплатформенность Поддерживает Windows (журнал событий, консоль) и POSIX (syslog, консоль). .TP .B Гибкий вывод Вывод логов в syslog, stdout/stderr (в зависимости от уровня) или файлы. .TP .B Уровни логирования Семь уровней: \fBDEBUGGING\fR, \fBALERT\fR, \fBCRITICAL\fR, \fBERROR\fR, \fBWARNING\fR, \fBNOTICE\fR, \fBINFORMATION\fR. .TP .B Плавный интерфейс Цепочная настройка целей вывода, уровней и других параметров. .TP .B Цветной вывод Опциональная поддержка цветного вывода в консоль (только для STD). .SH МЕТОДЫ .TP .B Log.msg Возвращает singleton-экземпляр класса \fBLog\fR. .RS Пример: \fBauto logger = Log.msg; logger.i("Логгер получен");\fR .RE .TP .B program(string name) Устанавливает имя программы для идентификации в syslog. Возвращает \fBLog\fR для цепочки. .RS Пример: \fBlog.program("МоеПриложение").i("Имя установлено");\fR .RE .TP .B file(string path) Устанавливает путь к лог-файлу. Возвращает \fBLog\fR для цепочки. .RS Пример: \fBlog.file("app.log").i("Файл настроен");\fR .RE .TP .B level(int priority) Устанавливает минимальный уровень логирования. Возвращает \fBLog\fR для цепочки. .RS Пример: \fBlog.level(log.level.warning).w("Это отобразится");\fR .RE .TP .B color(bool condition) Включает/выключает цветной вывод в консоль. Возвращает \fBLog\fR для цепочки. .RS Пример: \fBlog.color(true).i("Цветной вывод");\fR .RE .TP .B output(Output outs) Устанавливает цели вывода по умолчанию. Возвращает \fBLog\fR для цепочки. .RS Пример: \fBlog.output(log.output.std.file).i("В консоль и файл");\fR .RE .TP .B now(Output outs) Временно переопределяет цели вывода для следующего вызова. Возвращает \fBNow\fR для цепочки. .RS Пример: \fBlog.now(log.output.std).n("Временный вывод в консоль");\fR .RE .TP .B Методы логирования Запись сообщений на разных уровнях: \fBalert\fR, \fBcritical\fR, \fBerror\fR, \fBwarning\fR, \fBnotice\fR, \fBinformation\fR, \fBdebugging\fR (с алиасами \fBa\fR, \fBc\fR, \fBe\fR, \fBw\fR, \fBn\fR, \fBi\fR, \fBd\fR). .RS Пример: \fBlog.e("Произошла ошибка"); log.i(42);\fR .RE .SH ПРИМЕРЫ Настройка и использование логгера: .nf import singlog; void main() { log.program("МоеПриложение") .color(true) .level(log.level.debugging) .output(log.output.std.file.syslog) .file("myapp.log"); log.d("Запуск в режиме отладки"); log.i("Приложение работает"); log.e("Произошла ошибка"); log.now(log.output.std).n("Временное сообщение в консоль"); } .fi .SH СМ. ТАКЖЕ .BR dmd (1), .BR syslog (3) .SH АВТОР Александр Жиров