docs: add logger documentation and update README
This commit is contained in:
@@ -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 |
|
||||
| Некорректное имя файла | Инициализация завершается с ошибкой |
|
||||
|
||||
## Ограничения
|
||||
|
||||
Библиотека не является потокобезопасной. Для корректной работы запись должна выполняться последовательно из одного потока или синхронизироваться внешними средствами.
|
||||
@@ -1,3 +1,7 @@
|
||||
## Описание
|
||||
|
||||
Проект демонстрирует реализацию динамической библиотеки на C++17 для записи сообщений в текстовый журнал с поддержкой уровней важности и консольного многопоточного приложения, использующего эту библиотеку. Архитектура приложения обеспечивает потокобезопасную передачу сообщений в отдельный поток записи, при этом сама библиотека не является потокобезопасной и предполагает последовательные вызовы.
|
||||
|
||||
## Документация
|
||||
|
||||
- [Документация библиотеки логирования](LOGGER.ru.md)
|
||||
|
||||
Reference in New Issue
Block a user