Android Studio调试:无脱敏显示Logcat日志及Retrofit数据排查
一、让Android Studio Logcat无脱敏、无限制显示完整日志
- 调整日志缓冲区大小:
打开Android Studio的Run/Debug Configurations,找到目标调试配置,进入Logcat标签页,将Logcat buffer size设为较大值(如10240KB),或直接输入-1取消大小限制。 - 关闭日志脱敏:
查看Logcat右上角设置,确保Obfuscate logs选项未勾选。若代码中存在日志脱敏逻辑,临时注释相关代码。 - 重置日志过滤规则:
将Logcat日志级别切换为Verbose,清空所有自定义过滤条件(如包名、标签过滤),避免通配符*导致的日志截断或过滤。
二、Retrofit转换Kotlin对象时的日志排查方案
要获取完整原始JSON数据排查过滤问题,可通过以下方式:
- 添加OkHttp日志拦截器:
引入OkHttp的HttpLoggingInterceptor,在Retrofit构建阶段添加该拦截器并设置日志级别为BODY,以此打印完整的请求、响应JSON内容。示例代码:val loggingInterceptor = HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY } val okHttpClient = OkHttpClient.Builder() .addInterceptor(loggingInterceptor) .build() val retrofit = Retrofit.Builder() .baseUrl(BASE_URL) .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .build() - 直接打印原始响应字符串:
在处理Retrofit响应时,先将响应体转换为字符串打印,再执行对象转换。示例代码:val response = apiService.getData().execute() val rawJson = response.body()?.string() Log.d("RawJSON", rawJson ?: "Empty response") // 后续再将rawJson转换为Kotlin对象进行过滤处理 val dataObject = Gson().fromJson(rawJson, DataModel::class.java) - 禁用日志自动截断:
打开Android Studio的Help->Edit Custom Properties,添加配置idea.cycle.buffer.size=10240,重启IDE后即可避免长日志被截断为带*的形式。
内容的提问来源于stack exchange,提问作者Rishabh Gupta
相关产品推荐
相关产品推荐

