docs: add logger documentation and update README

This commit is contained in:
user
2026-07-17 18:28:30 +04:00
parent 8ae869c50b
commit ffd4a55e35
2 changed files with 72 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
# Документация библиотеки логирования
## Назначение
Библиотека предназначена для записи текстовых сообщений в журнал с учетом уровня важности. В качестве журнала используется текстовый файл.
## Возможности
* запись сообщений в текстовый файл;
* три уровня важности сообщений;
* фильтрация сообщений по минимальному уровню важности;
* изменение минимального уровня после инициализации;
* автоматическое сохранение времени получения сообщения.
## Интерфейс
### Инициализация
При создании объекта библиотеки необходимо указать:
* имя файла журнала;
* минимальный уровень важности сообщений.
### Запись сообщения
При записи сообщения библиотека:
1. проверяет уровень важности;
2. получает текущее время;
3. добавляет запись в журнал.
### Изменение уровня важности
Минимальный уровень важности может быть изменен в любой момент после инициализации.
## Формат записи
```text
YYYY-MM-DD HH:MM:SS [LEVEL] Сообщение
```
Пример:
```text
2026-07-17 18:42:31 [INFO] Application started
2026-07-17 18:42:37 [WARNING] Low memory
2026-07-17 18:42:41 [ERROR] Failed to open file
```
## Уровни важности
| Уровень | Описание |
| ------- | ------------------------ |
| INFO | Информационные сообщения |
| WARNING | Предупреждения |
| ERROR | Ошибки |
## Ошибки
| Ситуация | Поведение библиотеки |
|----------|----------------------|
| Не удалось открыть файл | Генерируется std::runtime_error |
| Ошибка записи | Генерируется std::runtime_error |
| Некорректное имя файла | Инициализация завершается с ошибкой |
## Ограничения
Библиотека не является потокобезопасной. Для корректной работы запись должна выполняться последовательно из одного потока или синхронизироваться внешними средствами.
+4
View File
@@ -1,3 +1,7 @@
## Описание
Проект демонстрирует реализацию динамической библиотеки на C++17 для записи сообщений в текстовый журнал с поддержкой уровней важности и консольного многопоточного приложения, использующего эту библиотеку. Архитектура приложения обеспечивает потокобезопасную передачу сообщений в отдельный поток записи, при этом сама библиотека не является потокобезопасной и предполагает последовательные вызовы.
## Документация
- [Документация библиотеки логирования](LOGGER.ru.md)