Android Ajouter une journalisation à Retrofit2


Exemple

Les demandes de modification peuvent être enregistrées à l'aide d'un intercepteur. Plusieurs niveaux de détails sont disponibles: AUCUN, BASIQUE, HEADERS, BODY. Voir le projet Github ici .

  1. Ajoutez une dépendance à build.gradle:
compile 'com.squareup.okhttp3:logging-interceptor:3.8.1'
  1. Ajouter un intercepteur de journalisation lors de la création de la modification:
  HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
  loggingInterceptor.setLevel(LoggingInterceptor.Level.BODY);
  OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
          .addInterceptor(loggingInterceptor)
          .build();
  Retrofit retrofit = new Retrofit.Builder()
          .baseUrl("http://example.com/")
          .client(okHttpClient)
          .addConverterFactory(GsonConverterFactory.create(gson))
          .build();

L'exposition des journaux dans le terminal (moniteur Android) doit être évitée dans la version finale, car cela peut entraîner une exposition indésirable d'informations critiques telles que des jetons d'authentification, etc.

Pour éviter que les journaux ne soient exposés lors de l'exécution, vérifiez la condition suivante

if(BuildConfig.DEBUG){
     //your interfector code here   
    }

Par exemple:

HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
if(BuildConfig.DEBUG){
     //print the logs in this case   
    loggingInterceptor.setLevel(LoggingInterceptor.Level.BODY);
}else{
    loggingInterceptor.setLevel(LoggingInterceptor.Level.NONE);
}

OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
      .addInterceptor(loggingInterceptor)
      .build();

Retrofit retrofit = new Retrofit.Builder()
      .baseUrl("http://example.com/")
      .client(okHttpClient)
      .addConverterFactory(GsonConverterFactory.create(gson))
      .build();