Как добавить логи к запросам

«Как добавить логи к запросам» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для логирования HTTP-запросов в Retrofit можно использовать HttpLoggingInterceptor из OkHttp. Пример:

val loggingInterceptor = HttpLoggingInterceptor().apply {
    level = HttpLoggingInterceptor.Level.BODY // или Level.BASIC, Level.HEADERS
}

val client = OkHttpClient.Builder()
    .addInterceptor(loggingInterceptor)
    .build()

val retrofit = Retrofit.Builder()
    .client(client)
    // остальные настройки
    .build()

Нюансы:

  1. В релизных сборках отключайте логирование (Level.NONE) или используйте if (BuildConfig.DEBUG)
  2. Логирование BODY может содержать конфиденциальные данные
  3. Для кастомного форматирования можно создать свой Interceptor