Developer Hub
자동 생성된 번역입니다.

Java용 Rapid SDK의 로깅

Java용 Rapid SDK는 클라이언트에 로깅 프레임워크를 적용하지 않고 대신 SLF4J 인터페이스를 통한 로깅을 지원합니다. SLF4J는 다양한 로깅 프레임워크에 대한 추상화를 제공하여 클라이언트가 프로젝트를 빌드할 때 원하는 구현에 연결할 수 있도록 합니다.

>> SLF4J에 대해 알아보기

로깅 프레임워크가 연결되어 있지 않으면 SDK(SLF4J)는 기본적으로 작동하지 않으며 단일 경고 메시지와 함께 모든 로그 요청을 삭제합니다.

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".\
SLF4J: Defaulting to no-operation (NOP) logger implementation\
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

프로젝트 종속성 선언

클라이언트는 특정 로깅 프레임워크를 프로젝트 종속성으로 선언하여 연결할 수 있습니다. 설계상 SLF4J는 한 번에 하나의 프레임워크만 사용할 수 있으며 여러 프레임워크를 찾으면 경고 메시지를 내보냅니다.

Simple logger

Java Util Logging

Logback

Log4j2

로그 형식

로깅 프레임워크는 사용자 지정 로그 형식 및 레이아웃을 지원합니다. 로깅 이벤트 소스에 타임스탬프 및 로거 이름과 같은 세부 정보를 포함하면 SDK 관련 문제를 해결하는 데 도움이 됩니다. 또한, 로그 메시지는 필터링이 가능한 ExpediaGroupSDK 접두사로 주석이 지정됩니다.

13:36:59.287 [DefaultDispatcher-worker-1] INFO  c.e.s.c.c.c.ConfigurationCollector MDC= - ExpediaSDK: Successfully loaded [endpoint] from [runtime configuration]

로그 수준

SDK에서 발생하고 수신한 요청 및 응답 데이터를 추적하려면 로그 수준을 INFO로 설정하여 헤더 및 본문 콘텐츠를 포함하여 기록할 수 있지만, 이 경우 상당한 양의 로깅 데이터가 생성될 수 있습니다. 로그 수준을 WARN 또는 ERROR로 설정하면 예외 및 오류만 기록되지만, 예기치 않은 동작이 발생할 경우 Expedia Group과 공유할 수 있는 트랜잭션 ID는 여전히 포함됩니다.

문제를 해결하는 경우 로그 수준을 DEBUG로 설정하여 요청 및 응답에 대한 자세한 정보를 얻을 수 있으며, DEBUG 수준의 로그에는 OkHttp 클라이언트 이벤트 및 트랜잭션 ID에 대한 보다 자세한 로깅이 포함됩니다.

DEBUG 수준의 로그 메시지 예시:

17:40:08.490 [DefaultDispatcher-worker-3] DEBUG com.expediagroup.sdk.core.client.OkHttpEventListener - ExpediaSDK: Call start for transaction-id: [aff4c00d-6f79-4690-8f60-dd1aaccbfaee]
17:40:08.496 [OkHttp https://test.ean.com/...] DEBUG com.expediagroup.sdk.core.client.OkHttpEventListener - ExpediaSDK: Connect start for transaction-id: [aff4c00d-6f79-4690-8f60-dd1aaccbfaee]
17:40:08.508 [OkHttp https://test.ean.com/...] DEBUG com.expediagroup.sdk.core.client.OkHttpEventListener - ExpediaSDK: Connect end for transaction-id: [aff4c00d-6f79-4690-8f60-dd1aaccbfaee]
17:40:08.508 [OkHttp https://test.ean.com/...] DEBUG com.expediagroup.sdk.core.client.OkHttpEventListener - ExpediaSDK: Connection acquired for transaction-id: [aff4c00d-6f79-4690-8f60-dd1aaccbfaee]
17:40:08.510 [OkHttp https://test.ean.com/...] DEBUG com.expediagroup.sdk.core.client.OkHttpEventListener - ExpediaSDK: Sending request headers start for transaction-id: [aff4c00d-6f79-4690-8f60-dd1aaccbfaee]
17:40:08.510 [OkHttp https://test.ean.com/...] DEBUG com.expediagroup.sdk.core.client.OkHttpEventListener - ExpediaSDK: Sending request headers end for transaction-id: [aff4c00d-6f79-4690-8f60-dd1aaccbfaee]
Information

참고

앞서 언급한 디버그 수준 로그는 built-in HTTP 클라이언트와 함께 SDK 클라이언트를 사용할 때만 확인할 수 있습니다. 사용자 정의 HTTP 클라이언트로 SDK 클라이언트를 구성하는 경우, 해당 HTTP 클라이언트 인스턴스 내에서 이 로깅 기능을 구현해야 합니다.

추적성

SDK는 모든 API 호출에 대해 고유한 transaction ID를 생성하므로 요청을 처음부터 끝까지 추적하여 문제를 해결하는 데 유용합니다. 트랜잭션 ID는 요청 및 응답 헤더에 추가되며 예외가 발생하는 경우 오류 메시지에 기록됩니다.

이 페이지가 도움이 되었나요?
이 콘텐츠를 어떻게 개선하면 좋을까요?
더 나은 Developer Hub를 만드는 데 도움을 주셔서 감사합니다!