Как реализовывал логирование на предыдущей работе
Python
Middle
Без компании
Как реализовывал логирование на предыдущей работе
Ответы
Мы использовали стандартный модуль `logging` Python, так как он гибкий и покрывает все базовые потребности. Основные практики:
- Настройка в `__init__.py` проекта:
```
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('app.log'),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
```
- Для разных модулей создавали отдельные логгеры через `getLogger(__name__)`
- Использовали разные уровни логирования (DEBUG, INFO, WARNING, ERROR)
- Для продакшена добавляли Sentry для критических ошибок
- В Docker-контейнерах перенаправляли логи в stdout/stderr для сбора через ELK-стек
Пример использования:
```
try:
logger.info("Starting processing")
# код
except Exception as e:
logger.error(f"Processing failed: {e}", exc_info=True)
```