An OkHttp interceptor which has pretty logger for request and response. +Mock support
val client = OkHttpClient.Builder() client.addInterceptor(LoggingInterceptor.Builder() .setLevel(Level.BASIC) .log(VERBOSE) .addHeader("cityCode","53") .addQueryParam("moonStatus", "crescent") .build())
Gradle: ```groovy allprojects { repositories { maven { url 'https://jitpack.io' } } }
dependencies { implementation('com.github.ihsanbal:LoggingInterceptor:3.1.0') { exclude group: 'org.json', module: 'json' } } ```
Maven: ```xml jitpack.io https://jitpack.io
com.github.ihsanbal LoggingInterceptor 3.1.0 ```
LoggingInterceptor.Builder() //Add logger to print log as plain text .logger(object : Logger { override fun log(level: Int, tag: String?, msg: String?) { Log.e("$tag - $level", "$msg") } }) //Enable mock for develop app with mock data .enableMock(BuildConfig.MOCK, 1000L, object : BufferListener { override fun getJsonResponse(request: Request?): String? { val segment = request?.url?.pathSegments?.getOrNull(0) return mAssetManager.open(String.format("mock/%s.json", segment)).source().buffer().readUtf8() } })
setLevel(Level.BASIC) .NONE // No logs .BASIC // Logging url,method,headers and body. .HEADERS // Logging headers .BODY // Logging body
log(Platform.WARN) // setting log type
tag("LoggingI") // Request & response each log tag request("request") // Request log tag response("response") // Response log tag
addHeader("token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 ") // Adding to request
Some tips about log at this blog post: “The way to get faster on development.”
Also use the filter & configure logcat header for a better result