Ответ
Система логирования — это инструментарий для записи (логгирования) событий, происходящих во время работы приложения. Эти записи (логи) используются для отладки, мониторинга работы системы и анализа инцидентов.
Ключевые компоненты и концепции:
- Уровни логирования (Log Levels): Позволяют классифицировать важность сообщений. Стандартные уровни (от наименее к наиболее критичным):
TRACE/DEBUG— детальная информация для отладки.INFO— информация о нормальном ходе работы (например, "Пользователь авторизован").WARN— предупреждение о потенциальной проблеме.ERROR— ошибка, которая не прервала работу приложения.FATAL/CRITICAL— критическая ошибка, приводящая к остановке приложения.
- Appenders / Handlers: Определяют, куда писать логи (консоль, файл, база данных, удаленная система вроде ELK или Splunk).
- Форматеры (Layouts / Formatters): Определяют формат строки лога (дата, уровень, сообщение, stack trace).
Практика в QA:
- Анализ логов — основной метод диагностики: Когда автотест падает, первым делом смотрю логи приложения и тестового фреймворка, чтобы понять контекст ошибки (stack trace, состояние системы).
- Верификация через логи: Для сложных или асинхронных операций иногда пишу тесты, которые проверяют, что в логах появилась определенная запись (например, "Заказ №123 оплачен").
- Настройка уровня логирования: При запуске тестовой среды часто настраиваю уровень на
DEBUG, чтобы получить максимум информации. На production-среде обычно стоитINFOилиWARN.
Пример конфигурации для Java (logback.xml):
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>app.log</file>
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>