¿Cómo configurar el nivel de registro de depuración y liberación para Retrofit?

Yo uso Retrofit en mi proyecto de Android. Durante el desarrollo, RestAdapter la salida de registro completa para el RestAdapter siguiente manera:

 new RestAdapter.Builder() .setLogLevel(RestAdapter.LogLevel.FULL); 

Cuando hago un lanzamiento el nivel de registro se establece en RestAdapter.LogLevel.NONE por razones obvias.

Me gustaría cambiar automáticamente esta configuración basada en la arquitectura de la carpeta / compilación:

 . ├── app │  └── src │  ├── debug │  ├── main │  └── release 

¿Cómo puedo mover RestAdapter.LogLevel.FULL en app/src/debug y RestAdapter.LogLevel.NONE en app/src/release ?

La forma más sencilla es utilizar el indicador BuildConfig.DEBUG que se establece automáticamente en true para las compilaciones de depuración y false para las compilaciones de versiones.

Lo hago así:

 RestAdapter adapter = new RestAdapter.Builder() .setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE) 

Una mejor manera de hacerlo es a través del archivo build.gradle como tal:

 buildTypes { debug { buildConfigField 'retrofit.RestAdapter.LogLevel', 'RETROFIT_LOG_LEVEL', 'retrofit.RestAdapter.LogLevel.FULL' } release { buildConfigField 'retrofit.RestAdapter.LogLevel', 'RETROFIT_LOG_LEVEL', 'retrofit.RestAdapter.LogLevel.NONE' } } 

Entonces en el código haga esto:

 mRestAdapter = new RestAdapter.Builder() .setEndpoint("http://something.com") .setLogLevel(BuildConfig.RETROFIT_LOG_LEVEL) .build(); 

De esta manera no hay comprobación en tiempo de ejecución, sólo en el momento de la compilación

  • Java.lang.NoClassDefFoundError: io.reactivex.Observable
  • Cómo crear NTLM Authentification con Retrofit
  • Encadenar dos observables de adaptación con RxJava
  • Agregar cabecera a todas las solicitudes con Retrofit 2
  • Retrofit 2 cómo obtener la respuesta de objetos anidados json (android)
  • Saco de jabón de marco simple y cuerpo
  • Cómo manejar el `IllegalArgumentException` en RxJava?
  • Java.lang.NoClassDefFoundError: Resolución fallida de: Lretrofit2 / GsonConverterFactory;
  • Manejo de errores personalizados con Retrofit cuando se ofusca usando proguard da java.lang.reflect.UndeclaredThrowableException
  • Manejo de listas con RxJava y Retrofit en android
  • Retrofit "Autorización", "Portador" + token
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.