跳转至

概述

Version 1.3.3

通过将 Okhttp3Interceptor 添加为 Okhttp 拦截器,便可轻松打印请求日志:

// Add Interceptor 
val logcat = logFactory("global") 
val okhttp = OkHttpClient
    .Builder()
    .addInterceptor(Okhttp3Interceptor(logcat))     
    .build()  

// Make a request 
val request: Request = Request.Builder()
    .url("http://127.0.0.1:7777")
    .build()
okhttp.newCall(request).execute()

查看示例代码

以下是打印的日志示例:

请求日志示例

请求日志示例

添加依赖

当前版本 version

implementation 'io.github.sakurajimamaii:log-okhttp:$version'
implementation("io.github.sakurajimamaii:log-okhttp:$version")

过滤器

Version 1.3.3

通过 Okhttp3Interceptor 提供的 filter 你可以对请求进行过滤,例如请求链接中必须包含 getPhoto :

okhttp3Interceptor.apply {
    filter = {
        it.url.host.contains("getPhoto")
    }
}

内容级别

Version 1.3.3

通过 Okhttp3Interceptor 提供的 contentLevel 你可以设置日志的打印内容,例如可以只打印日志的请求信息:

okhttp3Interceptor.apply {
    contentLevel = ContentLevel.INFO
}

仅打印日志请求信息

内容级别默认值

contentLevel 的默认值为 ContentLevel.ALL

请求日志级别

Version 1.3.3

通过 Okhttp3Interceptor 提供的 requestLevel 你可以设置请求内容的日志级别:

okhttp3Interceptor.apply {
    requestLevel = { request ->  
        if(request.url.host.contains("127.0.0.1")){
            LogLevel.DEBUG
        } else {
            LogLevel.INFO
        }
    }
}

请求日志级别默认值

requestLevel 的默认值为 LogLevel.DEBUG

回复日志级别

Version 1.3.3

通过 Okhttp3Interceptor 提供的 responseLevel 你可以设置回复内容的日志级别:

okhttp3Interceptor.apply {
    responseLevel = { response ->
        if (200 == response.code) {
            LogLevel.DEBUG
        } else {
            LogLevel.ERROR
        }
    }
}

请求头隐藏

Version 1.3.9

通过 sanitizedHeaders() 可以将指定的请求头进行替换为隐藏字段:

Okhttp3Interceptor(logcat)
    .sanitizedHeaders("Authorization","***")
    .sanitizedHeaders("User-Agent","xxx")

则上述的请求头内容会被替换成指定内容:

请求头隐藏

回复日志级别默认值

responseLevel 的默认值为 LogLevel.DEBUG