精简远程日志: 每次事件一条汇总, 细节只留本地
- MiliLog 新增只写本地通道 local/localWarn/localError
(队列改为 Entry(local, remote), remote 为 null 即只写本地、跳过 HTTP)
- 本地日志文件改为纯文本 yyyy-MM-dd HH:mm:ss.SSS LEVEL text, 单行上限 4000
(远程仍按 900 截断) —— 本地是"详细记录", 要人能直接读
- 逐源/逐次日志全部改本地:
· SongUrlResolver: i.php/do.php 异常、token 失败、do.php code、HTTP 4xx/5xx、
响应非 JSON、冷却跳过、403 提示、广告示例 URL
· KtvJsBridge: JS 控制台转发(量最大)、单次 HTTP-<status>、NET-ERR
- 结果: 每次取址远程恰好一条
成功 NATIVE-SONG 取址成功… / 失败 NATIVE-SONG 全部源失败… / 全广告 SOURCE-BLOCKED…
(改前 9 个源逐个上报, 一次取址 9+ 条)
- 保留: JS-BRIDGE…(状态变化)、点歌失败…(每首一行)、SONG-AD…(广告拦截) 仍上报远程
- AGENTS: 写日志约定新增第 5 条(远程=结论、本地=过程), JS 日志规则改为只进本地
版本号按规则 3: 1.5.7(39) → 1.5.8(40); 按要求未打包
验证: compileReleaseKotlin + 单元测试(9 例全过)
This commit is contained in:
@@ -429,7 +429,7 @@ class KtvJsBridge(context: Context) {
|
||||
Log.d(TAG, message)
|
||||
// 把 JS 侧日志接进远程日志:歌曲源解析(token/do.php/多源排序)的失败原因
|
||||
// 以前只走 console.log,现场完全看不到。加上前缀便于检索与过滤。
|
||||
runCatching { MiliLog.info("JS ${message.take(180)}") }
|
||||
runCatching { MiliLog.local("JS ${message.take(180)}") }
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
@@ -482,7 +482,7 @@ class KtvJsBridge(context: Context) {
|
||||
if (status > 0) {
|
||||
// 远程日志: 风控/服务端错误(403/5xx)实时上报, 便于排查间歇性点歌失败。
|
||||
if (status == 403 || status >= 500) {
|
||||
MiliLog.error("HTTP-$status $method $url")
|
||||
MiliLog.localError("HTTP-$status $method $url")
|
||||
}
|
||||
// 歌曲源试用窗口/风控到期: 对陌生出口 IP 可能返回 403"检测到异常行为",
|
||||
// 换公网 IP 恢复。通知 UI 弹一次提示引导换 IP。
|
||||
@@ -500,7 +500,7 @@ class KtvJsBridge(context: Context) {
|
||||
if (fallbackStatus == 0) {
|
||||
// 两个通道都失败 → 网络不可达/解析失败, 实时上报。
|
||||
val err = runCatching { JSONObject(fallback).optString("error") }.getOrDefault("")
|
||||
MiliLog.error("NET-ERR $method $url $err")
|
||||
MiliLog.localError("NET-ERR $method $url $err")
|
||||
}
|
||||
return fallback
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user