这个建议很合理,我看了一下 DCC2 的代码,确实存在你说的问题。
目前 enableLog(true) 打开的日志主要集中在 updateAll 和目录节点下载这些流程上,输出的都是 hash 维度的信息。而最关键的 readFile/transUrl 这条文件加载路径——也就是实际运行时每个资源从哪来的——基本没有日志输出。
DCCDownloader 内部其实有一套比较有用的日志(比如 download:common:readFile(url) OK,带了原始 URL),但它走的是 ICheckLog 接口,不受 enableLog 开关控制,是给自动化测试用的,普通使用场景看不到。
你提到的"文件名 + 来源 + hash + 缓存状态"这个日志格式确实是调试 DCC 问题时最需要的信息,我会把这个反馈同步给开发同事,后续版本加强这块的日志输出。
临时的 workaround:如果你现在就需要跟踪文件加载情况,可以在 readFile 调用前后自己加一层包装打日志,大致像这样:
let origReadFile = dcc.readFile.bind(dcc);
dcc.readFile = async function(url: string) {
let buff = await origReadFile(url);
console.log(`[DCC] ${buff ? '缓存命中' : '未命中'}: ${url}`);
return buff;
};
这样至少能看到每个文件是不是走了 DCC 缓存。