Java Rapid SDK 中的日誌記錄

Java Rapid SDK 不會在用戶端上實施日誌記錄框架,而是透過 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 一次只能使用一個框架,若發現多個框架,則會傳送警告通知。

簡單記錄器

Java Util 日誌記錄

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,系統只會記錄例外狀況和錯誤情況,但其中仍包含交易 ID,讓您在系統發生非預期行為時,與 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]

可追溯性

SDK 會為每個 API 呼叫建立唯一的transaction ID,協助系統以端到端追蹤要求方式來解決問題。系統會將交易 ID 新增至要求和回應標題,並在出現例外情況時將其記錄錯誤訊息中。

這個頁面有幫助嗎?
我們能如何改善內容?
感謝您協助我們進行改善!