LoggingInterceptor - Interceptor for OkHttp3 with pretty logger
Logcat
??????? Request ???????????????????????????????????????????????????????????????????????? ? URL: http://demo2961085.mockable.io/post ?
? Method: @POST ?
? Headers: ? ? version: 1.0 ? ? Cache-Control: Custom-Max-Value=640000 ?
? Body: ? {
?
"header": "array", ?
"sparseArray": {
?
"mGarbage": false, ?
"mKeys": [ ?
0, ?
1, ?
2, ?
0, ?
0 ?
], ?
"mSize": 3, ?
"mValues": [ ?
1, ?
2, ?
3, ?
null, ?
null ?
] ?
}
?
}
???????????????????????????????????????????????????????????????????????????????????????? ??????? Response ??????????????????????????????????????????????????????????????????????? ? /post - is success : true - Received in: 349ms ?
? Status Code: 200 ?
? Headers: ? ? access-control-allow-origin: * ? ? Content-Type: application/json; charset=UTF-8 ? ? X-Cloud-Trace-Context: 5ab0ad3fb9d7ae4dca27af3c8ef3905d ? ? Date: Wed, 19 Jul 2017 08:28:56 GMT ? ? Server: Google Frontend ? ? Content-Length: 26 ?
? Body: ? {
?
"glossary": {
?
"title": "example glossary", ?
"GlossDiv": {
?
"title": "S", ?
"GlossList": {
?
"GlossEntry": {
?
"ID": "SGML", ?
"SortAs": "SGML", ?
"GlossTerm": "Standard Generalized Markup Language", ?
"Acronym": "SGML", ?
"Abbrev": "ISO 8879:1986", ?
"GlossDef": {
?
"para": "A meta-markup language, used to create markup languages such as DocBook.", ?
"GlossSeeAlso": [ ?
"GML", ?
"XML" ?
] ?
}
, ?
"GlossSee": "markup" ?
}
?
}
?
}
?
}
?
}
????????????????????????????????????????????????????????????????????????????????????????
Usage
OkHttpClient.Builder client = new OkHttpClient.Builder();
client.addInterceptor(new LoggingInterceptor.Builder()
.loggable(BuildConfig.DEBUG)
.setLevel(Level.BASIC)
.log(Platform.INFO)
.request("Request")
.response("Response")
.addHeader("version", BuildConfig.VERSION_NAME) //
.logger(new Logger() {
//
@Override //
public void log(int level, String tag, String msg) {
//
Log.w(tag, msg);
//
}
//
}
)
.build());
OkHttpClient okHttpClient = client.build();
//You can use with Retrofit Retrofit retrofitAdapter = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.baseUrl("https://.../")
.client(okHttpClient)
.build();
Download
Gradle:
allprojects {
repositories {
...
maven {
url 'https://jitpack.io'
}
}
}
dependencies {
compile('com.github.ihsanbal:LoggingInterceptor:2.0.3') {
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>2.0.3</version> </dependency>
Level
setLevel(Level.BASIC)
.NONE // No logs
.BASIC // Logging url,method,headers and body.
.HEADERS // Logging headers
.BODY // Logging body
Platform - Platform
loggable(BuildConfig.DEBUG) // enable/disable sending logs output. 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
Use the filter & configure logcat header for a better result