Analisi dei log su WeChat Mini Program
Questo documento presenta il flusso completo per ottenere e analizzare i log nell'ambiente AR di WeChat Mini Program.
Usare vConsole di WeChat Mini Program
Poiché AR in WeChat Mini Program può essere eseguito e debuggato solo su dispositivo reale, usare vConsole per osservare l'output in tempo reale è fondamentale per il debug. Per l'uso di base consultare la documentazione ufficiale di WeChat Mini Program.
Come abilitare vConsole durante il debug su dispositivo reale
Nell'interfaccia AR fare clic sul primo pulsante in alto a destra > fare clic su Development debugging nella toolbar inferiore > fare clic su Open debugging > nella finestra popup fare clic su OK per riavviare il Mini Program.


In seguito sull'interfaccia verrà mostrato continuamente il pulsante flottante vConsole.

Fare clic sul pulsante vConsole per visualizzare tutti i log correnti:

Come distinguere la fonte dei log
Le fonti dei log possono generalmente essere suddivise in:
Log di sistema WeChat Mini Program: di solito attivati da cambi di route pagina o cambiamenti nel lifecycle dei componenti, mostrati in blu in vConsole.
Log xr-frame: stampati dal framework di rendering ufficiale, con contenuto che inizia con
[xr-frame].Log personalizzati utente: stampati dallo sviluppatore tramite interfacce standard come
console.log().Log di errore del framework Mini Program: lanciati dal livello sottostante di WeChat, con contenuto che inizia con
MiniProgramError.Log del plugin Mega Mini Program: stampati internamente dal plugin Mega Mini Program, con contenuto che inizia con il nome della classe fra parentesi quadre, come [MegaTracker]. Attualmente vengono emessi soprattutto quando vengono catturate exception.
Esempio 1:

La prima parte in blu è il log di sistema e mostra la route della pagina e lo stato di caricamento.
La seconda parte inizia con
[xr-frame]e mostra informazioni di lifecycle del framework di rendering.La terza parte è output personalizzato dello sviluppatore.
Esempio 2:

Appaiono log che iniziano con nomi di classe come
[MegaTracker]e[EasyARSession(xrframe)], il che significa che il plugin Mega ha catturato una runtime exception.Esempio 3:

In
MiniProgramErrorappareWAXRFrameRenderContext.js, indicando un problema nell'uso di interfacce o configurazioni di componenti relative a xr-frame.Esempio 4:

Questo log indica che si è verificata una exception durante l'esecuzione del metodo
onCloudLocalizationnel plugin mega, causando un errore lanciato dal framework Mini Program.
Formato dei log del plugin Mega Mini Program
I log esportati dal metodo dumpLog(signal) sono separati da |, e il contenuto è nell'ordine:
- Timestamp: formato standard
ISO 8601, indica l'ora di sistema in cui il log viene stampato. - Livello log: include
Info,Warning,Error,FatalError. - Nome classe: racchiuso tra parentesi quadre.
- Dettagli: descrizione specifica del log.
- Caller: solitamente
Unspecified, indica un processo di esecuzione naturale; se la exception è causata da una chiamata interfaccia dell'utente, viene mostratoUser. - Fase di esecuzione:
Unspecifiedsignifica che non richiede attenzione; altri campi indicano che la exception si è verificata in una fase di esecuzione specifica.

Come registrare e inoltrare i log
Questa sezione introduce soluzioni per ottenere ed esportare i log.
Esportare log vConsole
Fare clic sul pulsante copia a destra della posizione in cui il log viene stampato per esportarlo.
Interfaccia dump log del plugin Mega Mini Program
Controllare il flusso di esportazione dei log chiamando l'interfaccia dumpLog(signal):
- Passare
true: avvia la registrazione. - Passare
false: arresta la registrazione e restituisce il percorso temporaneo del file (tempFilePath) generato.
Di solito si consiglia di associare la logica di registrazione a un pulsante UI. All'inizio della registrazione usare il metodo wx.showToast() per indicare che la registrazione è iniziata; al termine della registrazione usare il metodo wx.shareFileMessage() per inoltrare il file registrato tramite chat WeChat.
/**
* gestisce la logica di registrazione di Session
* @param signal true avvia la registrazione, false la termina e la inoltra
*/
dumpLog(signal: boolean): void {
// chiama l interfaccia per ottenere il percorso
const logPath = session.dumpLog(signal);
// quando signal e true, l interfaccia restituisce una stringa vuota per indicare che la registrazione e in corso
if (logPath.length == 0) {
wx.showToast({
title: '开始记录日志',
icon: 'success',
duration: 2000
});
return;
}
// quando signal e false, elabora il percorso del file restituito
wx.shareFileMessage({
filePath: logPath,
success() {
wx.showToast({
title: '日志转发成功',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: '日志转发失败',
icon: 'error',
duration: 2000
});
}
})
}
Questo esempio mostra come usare il metodo
session.dumpLog()in un componente xr-frame per registrare e inoltrare file di log, fornendo i relativi prompt Toast.
Importante
Se usando Mega si incontrano problemi relativi a localization o tracking e non exception del programma, oltre ai log assicurarsi di fornire il file di screen recording e il file session dump di quel momento. Un semplice file di log può offrire solo un riferimento indiretto; screen recording e dati dump sono la base fondamentale per il troubleshooting.