LoggingInterceptor

General

Category
Free
Tag
Networking
License
MIT License
Registered
Mar 15, 2020
Favorites
2
Link
https://github.com/ihsanbal/LoggingInterceptor
See also
EasyFTP
OkSse
networking
Blaubot
Monet

Additional

Language
Kotlin
Version
3.1.0 (May 3, 2020)
Created
Feb 22, 2017
Updated
Nov 29, 2020 (Retired)
Owner
ihsan BAL (ihsanbal)
Contributors
ihsan BAL (ihsanbal)
Gökhan Türedi (gturedi)
Illia Achour (dummyco)
Volodymyr Art (mrArtCore)
4
Activity
Badge
Generate
Download
Source code
APK file

Commercial

LoggingInterceptor - Interceptor for OkHttp3 with pretty logger

Usage

val client = OkHttpClient.Builder()
    client.addInterceptor(LoggingInterceptor.Builder()
             .setLevel(Level.BASIC)
             .log(VERBOSE)
             .addHeader("cityCode","53")
             .addQueryParam("moonStatus", "crescent")
             .build())

Download

Gradle:

allprojects {
 repositories {
  maven { url 'https://jitpack.io' }
 }
}

dependencies {
 implementation('com.github.ihsanbal:LoggingInterceptor:3.1.0') {
         exclude group: 'org.json', module: 'json'
     }
}

Maven:

<repository>
   <id>jitpack.io</id>
   <url>https://jitpack.io</url>
</repository>

<dependency>
    <groupId>com.github.ihsanbal</groupId>
    <artifactId>LoggingInterceptor</artifactId>
    <version>3.1.0</version>
</dependency>

Logger & Mock Support

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()
          }
      })

Level

setLevel(Level.BASIC)
       .NONE // No logs
       .BASIC // Logging url,method,headers and body.
       .HEADERS // Logging headers
       .BODY // Logging body

Platform - Platform

log(Platform.WARN) // setting log type

Tag

tag("LoggingI") // Request & response each log tag
request("request") // Request log tag
response("response") // Response log tag

Header - Recipes

addHeader("token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 ") // Adding to request

Notes

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