# Логирование

Библиотека **nalogovich** поддерживает опциональное логирование всех операций с использованием [loguru](https://github.com/Delgan/loguru).

По умолчанию логирование **выключено**, но вы можете активировать его при создании клиента.

---

## Включение логирования

Чтобы включить логирование, передайте параметр `enable_logging=True` при создании `NpdClient`:

```python
from nalogovich import NpdClient

async with NpdClient(
    inn="ваш_инн",
    password="ваш_пароль",
    enable_logging=True  # Включаем логирование
) as client:
    await client.auth()
    # Все операции будут логироваться
```

---

## Что логируется

Библиотека логирует следующие операции:

### Авторизация
- Успешная авторизация
- Попытка обновления токена
- Успешное обновление токена
- Ошибки авторизации (неверные учетные данные, доступ запрещен, сетевые ошибки)

### Работа с чеками
- Получение списка чеков (с указанием периода, offset, limit и количества полученных записей)
- Создание чека (с ID созданного чека)
- Аннулирование чека (с UUID чека)

### Работа со счетами
- Создание счёта (с ID созданного счёта)
- Получение списка счетов (с количеством полученных записей)
- Аннулирование счёта (с ID счёта)
- Подтверждение оплаты счёта (с ID счёта)
- Обновление платёжной информации счёта (с ID счёта)
- Создание чека на основе счёта (с ID счёта)

### Дополнительные операции
- Получение реквизитов для оплаты (с количеством полученных записей)

---

## Настройка loguru

Поскольку библиотека использует **loguru**, вы можете настроить форматирование и вывод логов в вашем приложении:

```python
from loguru import logger

# Пример настройки формата логов
logger.add(
    "nalogovich.log",
    format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}",
    level="INFO",
    rotation="10 MB"
)

# Использование с включенным логированием
async with NpdClient(
    inn="ваш_инн",
    password="ваш_пароль",
    enable_logging=True
) as client:
    await client.auth()
```