Продвинутый `logging`
Python
Senior
Яндекс
Как вы настраиваете `logging` в библиотеке/сервисе так, чтобы пользователь мог управлять логированием, но при этом библиотека не «шумела» по умолчанию?
Ответы
Logging best practices
Общий подход:
- использовать `logging.getLogger(__name__)` внутри модулей;
- не настраивать глобальный `basicConfig` в библиотеке;
- выставить уровень по умолчанию `WARNING`, чтобы не шуметь;
- не использовать `print` для логов.
Пример в библиотеке:
```python
import logging
logger = logging.getLogger(__name__)
def do_something():
logger.debug('internal details')
logger.info('something happened')
```
Конечное приложение само конфигурирует хендлеры/форматтеры.