微信小程序上的日誌分析
本文介紹了在微信小程序 AR 環境下進行日誌獲取和分析的完整流程。
Using 微信小程序 vconsole
由於微信小程序 AR 只能在實機運行和調試,使用 vConsole 觀察實時輸出是調試的關鍵,基礎用法可參考微信小程序官方文檔。
實機調試中如何啟用 vconsole
在 AR 界面點擊右上角第一個按鈕 > 點擊下方工具欄中的開發調試 > 點擊打開調試 > 在彈出窗口中點擊 確定以重啟小程序。


此後界面上會持續顯示 vConsole 懸浮按鈕。

點擊 vConsole 按鈕即可查看當前運行的所有日誌:

如何區分日誌來源
日誌來源一般可以分為:
微信小程序系統日誌:通常在頁面路由跳轉、組件生命週期變化時觸發,在 vConsole 中以藍字顯示。
xr-frame 日誌:由官方渲染框架打印,日誌內容以
[xr-frame]開頭。用戶自定義日誌:由開發者通過
console.log()等標準接口打印。小程序框架錯誤日誌:由微信底層拋出,內容以
MiniProgramError開頭。Mega 小程序插件日誌:由 Mega 小程序插件內部打印,日誌內容以中括號包裹的類名開頭(如 [MegaTracker]),目前主要在捕獲異常時輸出。
示例 1:

第一部分藍字是系統日誌,顯示了頁面路由及加載狀態
第二部分以
[xr-frame]開頭,展示了渲染框架的生命週期信息。第三部分是開發者自定義輸出。
示例 2:

出現了
[MegaTracker]、[EasyARSession(xrframe)]等類名開頭的日誌,這代表 Mega 插件捕獲到了運行異常。示例 3:

MiniProgramError中出現了WAXRFrameRenderContext.js字樣,說明使用 xr-frame 相關的接口或組件配置出現了問題。示例 4:

該日誌說明 mega 插件中的
onCloudLocalization方法運行時出現了異常導致小程序框架拋出錯誤。
Mega 小程序插件的日誌格式
由 dumpLog(signal) 方法導出的日誌以 | 分隔,內容依次是:
- 時間戳:
ISO 8601標準格式,表示打印日誌時的系統時間。 - 日誌級別:包括
Info、Warning、Error、FatalError。 - 類名:以中括號包裹。
- 詳細信息:具體的日誌描述。
- 調用者:通常為
Unspecified(表示自然運行過程);若為用戶調用接口引發的異常則顯示為User。 - 運行階段:顯示為
Unspecified表示無需關注;顯示其他字段則表示該異常發生在特定運行階段。

如何記錄和轉發日誌
介紹日誌的獲取和導出方案。
vConsole 導出日誌
在打印日誌的位置點擊右側複製按鈕導出。
Mega 小程序插件 dump log 接口
通過調用 dumpLog(signal) 接口控制導出日誌流程:
- 傳入
true:啟動記錄。 - 傳入
false:停止記錄,並返回生成的 文件臨時路徑 (tempFilePath)。
通常建議將記錄邏輯與 UI 按鈕綁定,在開始記錄時通過 wx.showToast() 方法提示記錄開始,在記錄結束時通過 wx.shareFileMessage() 方法將記錄的文件通過微信聊天轉發。
/**
* 處理 Session 記錄邏輯
* @param signal true 為開始記錄,false 為結束記錄並轉發
*/
dumpLog(signal: boolean): void {
// 調用接口獲取路徑
const logPath = session.dumpLog(signal);
// signal 為 true 時,接口返回空字符串,表示正在記錄
if (logPath.length == 0) {
wx.showToast({
title: '開始記錄日誌',
icon: 'success',
duration: 2000
});
return;
}
// signal 為 false 時,處理返回的文件路徑
wx.shareFileMessage({
filePath: logPath,
success() {
wx.showToast({
title: '日誌轉發成功',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: '日誌轉發失敗',
icon: 'error',
duration: 2000
});
}
})
}
這個例子演示了如何在 xr-frame 組件中使用
session.dumpLog()方法記錄並轉發日誌文件,並且給出相應的 Toast 提示。
重要事項
如果使用 Mega 時遇到定位或跟踪相關的問題而不是程序異常,除了日誌外,請務必提供當時的錄屏文件和 session dump 文件。純日誌文件僅能提供側面參考,錄屏與 dump 數據才是排查問題的核心依據。