Протоколирование HTTP-запросов и ответов
Ведение журнала является фундаментальным аспектом разработки программного обеспечения. Он предоставляет разработчикам информацию о том, как ведут себя их приложения, помогает отлаживать проблемы и контролирует состояние системы. Zalando, один из крупнейших в Европе интернет-магазинов модной одежды, разработал библиотеку журналов с открытым исходным кодом под названием «Logbook».
В этой статье мы углубимся в журнал Zalando, изучим его функции и предоставим примеры кода, которые помогут разработчикам реализовать эффективное ведение журналов в своих приложениях.
Что такое бортовой журнал?
Logbook — это расширяемая библиотека Java, позволяющая осуществлять полное ведение журнала запросов и ответов для различных клиентских и серверных технологий. Он удовлетворяет особые потребности,
а) позволяя разработчикам веб-приложений регистрировать любой HTTP-трафик, который приложение получает или отправляет
б) таким образом, чтобы его можно было легко сохранить и проанализировать позже.
Это может быть полезно для традиционного анализа журналов, выполнения требований аудита или исследования отдельных исторических проблем с трафиком. - "источник"
Вот некоторые из его ключевых особенностей:
- Структурированное ведение журнала. Журнал поддерживает структурированное ведение журнала, позволяя разработчикам прикреплять пары ключ-значение (контекстную информацию) к сообщениям журнала. Это упрощает поиск, фильтрацию и анализ данных журнала.
- Журналирование запросов и ответов. Журнал предназначен для веб-приложений, что позволяет легко регистрировать детали HTTP-запросов и ответов, включая заголовки и основное содержимое.
- Поддержка потоковой передачи. Журнал поддерживает различные потоки вывода, такие как файлы, стандартный вывод (stdout) и стандартный вывод ошибок (stderr). Вы можете настроить несколько обработчиков для отправки журналов в разные места назначения.
- Расширяемость. Разработчики могут расширять функциональность журнала, создавая собственные обработчики и форматировщики журналов, что позволяет интегрироваться с различными службами и форматами журналов.
Базовая настройка в приложении весенней загрузки
Зависимость для включения в файл pom.xml или gradle.build.
<dependency> <groupId>org.zalando</groupId> <artifactId>logbook-spring-boot-starter</artifactId>…