网络请求本地日志变更记录

变更目标

参照 CusumptionMachine 的网络请求日志记录方式,将 AIDishRecognition 现有 RequetInterceptor 组装的请求日志写入 LocalFileRecorder。日志目录不引入新路径,继续使用当前项目既有的应用文件目录下 Log/:优先外部应用文件目录,无法获取时回退内部应用文件目录。

实现摘要

  1. RequetInterceptor 在请求成功后,将 URL、现有 POST 参数、响应预览和耗时作为一条完整记录写入 LocalFileRecorder。
  2. 请求抛出 IOException 时,记录 URL、异常类型、异常消息和耗时,再原样抛出同一个异常,保持原网络错误处理链不变。
  3. 响应预览继续使用 peekBody,最大预览长度集中为命名常量 MAX_RESPONSE_PREVIEW_BYTES,不消耗业务层响应体。
  4. 新增资源 local_recorder_net_work_title=网络请求_。生成文件形如 Log/网络请求_<日期>.txt,日期和追加写入格式均复用现有 LocalFileRecorder。
  5. 增加 NetworkLogWriter 注入边界,仅用于隔离本地 JVM 测试与 Android 日志/文件系统;生产无参构造仍直接连接 LogUtils 和 LocalFileRecorder。

业务仓变更文件

strings.xml 在本任务开始前已有菜品学习相关改动;本次只新增网络日志文件名前缀,既有改动原样保留。业务仓其余未提交改动也未被本任务修改或清理。

测试与验证

TDD 过程

最终自动化验证

真机验收状态

adb devices 检测到一台状态为 device 的目标,但本任务未安装 APK、启动应用或触发真实网络请求。以下项目仍待人工执行,不能记为已通过:

  1. 发起成功请求后,确认应用文件目录的 Log/网络请求_<日期>.txt 已追加 URL、响应和耗时。
  2. 制造网络失败后,确认同一日志文件追加异常类型、异常消息和耗时,且应用仍按原流程处理网络错误。
  3. 连续读取正常响应,确认业务层没有因日志记录出现空响应体。

配套文档

以上路径均位于提示词工程 work_android/AIDishRecognition/,不在业务代码仓中。

Git 操作

未执行 stage、commit、push、branch、merge、rebase、reset 或 clean。