Что такое логирование в разработке ПО?

«Что такое логирование в разработке ПО?» — вопрос из категории Логирование и мониторинг, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Логирование — это процесс записи событий (логов) о работе приложения во время его выполнения для последующего анализа. Оно используется для отладки, мониторинга состояния системы, аудита и расследования инцидентов.

Ключевые концепции:

  • Уровни логирования (Log Levels): Позволяют фильтровать важность сообщений.
    • DEBUG — детальная информация для разработчиков.
    • INFO — подтверждение нормальной работы (например, "Сервис запущен").
    • WARNING — указание на потенциальную проблему.
    • ERROR — ошибка в выполнении операции.
    • CRITICAL — критическая ошибка, приводящая к остановке приложения.
  • Назначение: Логи помогают воспроизвести последовательность событий, приведших к ошибке, без необходимости отладки в реальном времени.

Пример настройки и использования в Python (logging):

import logging

# Базовая конфигурация: запись в файл с уровнем INFO
logging.basicConfig(
    filename='app.log',
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

logging.info('Приложение запущено')

try:
    result = 10 / 0
except ZeroDivisionError:
    # Логирование исключения с трассировкой стека
    logging.error('Произошло деление на ноль', exc_info=True)

Best Practices:

  • Не логируйте конфиденциальные данные (пароли, токены).
  • Используйте структурированное логирование (JSON) для упрощения парсинга.
  • Настройте ротацию лог-файлов, чтобы они не занимали всё дисковое пространство.