You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级OkHttp MockWebServer后无日志,如何开启请求响应日志?

MockWebServer升级后日志丢失问题

问题现象

  • Android项目中使用MockWebServer 3.14.9版本时,运行UI测试可在logcat中正常查看MockWebServer输出的请求、响应日志
  • 升级到4.10.0版本后,logcat中无法看到任何MockWebServer输出的请求、响应相关日志

排查过程

  • 查阅代码变更记录发现,某次版本迭代中MockWebServer的请求响应日志级别从INFO被调整为FINE,截至最新正式版源码,该日志判断逻辑未发生变更,对应实现代码如下:
if (logger.isLoggable(Level.FINE)) {
    logger.fine(
      "${this@MockWebServer} received request: $request and responded: $response"
    )
  }
  • 调试时发现上述logger.isLoggable(Level.FINE)判断结果始终为false,对照java.util.logging中Logger.isLoggable的实现逻辑:
/**
* Check if a message of the given level would actually be logged
* by this logger.  This check is based on the Loggers effective level,
* which may be inherited from its parent.
*
* @param   level   a message logging level
* @return  true if the given message level is currently being logged.
*/
public boolean isLoggable(Level level) {
    int levelValue = config.levelValue;
    if (level.intValue() < levelValue || levelValue == offValue) {
        return false;
    }
    return true;
}
  • 断点验证确认判断返回false的根因:FINE日志级别的优先级值为500,低于Logger默认配置的INFO级别优先级值800,因此默认配置下该条日志会被直接过滤,不会输出。

待解答疑问

  1. 前述将日志级别从INFO修改为FINE的代码变更是否存在疏漏,未考虑JUL Logger默认日志级别为优先级更高的INFO,导致默认场景下用户无法正常看到日志?
  2. 是否存在官方支持的配置方式可以调整Logger的日志级别,或是有其他官方推荐的途径可以查看MockWebServer输出的请求、响应日志?

内容的提问来源于stack exchange,提问作者JustTheHighlights

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:45:39