Registro no SDK da Rapid para Java
O SDK da Rapid para Java não impõe uma estrutura de registro a clientes. Em vez disso, oferece suporte ao registro na interface SLF4J. O SLF4J oferece uma abstração para várias estruturas de registro, permitindo que clientes conectem a implementação desejada ao criar projetos.
Sem uma estrutura de registro conectada, o SDK (SLF4J) assume como padrão uma não operação, descartando todas as solicitações de registro com uma única mensagem de aviso:
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.
Declarar dependências do projeto
Um cliente pode conectar uma estrutura de registro específica ao declará-la como uma dependência do projeto. Por padrão, o SLF4J pode usar apenas uma estrutura por vez e vai emitir uma mensagem de aviso se encontrar várias estruturas.
Logger simples
Java Util Logging
Logback
Log4j2
Formato de registro
As estruturas de registro são compatíveis com layouts e formatos de registro personalizados. Além disso, a inclusão de detalhes no registro informações, como o carimbo de data e hora e o nome da pessoa que fez esse registro, ajuda a solucionar problemas do SDK. Além disso, as mensagens de registro são anotadas com o prefixo ExpediaGroupSDK
para que possamos filtrá-las.
13:36:59.287 [DefaultDispatcher-worker-1] INFO c.e.s.c.c.c.ConfigurationCollector MDC= - ExpediaSDK: Successfully loaded [endpoint] from [runtime configuration]
Níveis de registro
Para acompanhar os dados de solicitações e respostas originados do SDK e recebidos por ele, você pode definir o seu nível de registro como INFO. Assim, eles vão ser registrados com o cabeçalho e o conteúdo do corpo da mensagem. No entanto, isso pode gerar uma grande quantidade de dados de registro. Quando o nível de registro é definido como WARN ou ERROR, apenas exceções e erros são registrados, mas, ainda assim, um ID de transação é incluído para você poder compartilhar com o Expedia Group em caso de comportamento inesperado.
Se você está solucionando um problema, pode definir o nível do registro como DEBUG para receber informações mais detalhadas sobre a solicitação e a resposta. Os registros de nível DEBUG incluem dados mais detalhados sobre os eventos do cliente OkHttp e um ID de transação.
Exemplos de mensagens de registro no nível 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]
Rastreabilidade
O SDK gera um transaction ID
único para cada chamada à API, o que ajuda a solucionar problemas por meio rastreamento de ponta a ponta das solicitações. Os IDs das transações são adicionados aos cabeçalhos de solicitação e resposta, e registrados em mensagens de erro em caso de exceções.