Analisi dei log su mini program WeChat
Questo articolo descrive il processo completo per ottenere e analizzare i log nell'ambiente AR dei mini program WeChat.
Utilizzo di vConsole su mini program WeChat
Poiché l'AR dei mini program WeChat può essere eseguito e debuggato solo su dispositivi fisici, l'uso di vConsole per osservare l'output in tempo reale è fondamentale per il debug. L'uso di base può essere consultato nella documentazione ufficiale dei mini program WeChat.
Come abilitare vConsole nel debug su dispositivo fisico
Nell'interfaccia AR, fare clic sul primo pulsante in alto a destra > Fare clic su Debug di sviluppo nella barra degli strumenti inferiore > Fare clic su Apri debug > Nella finestra popup fare clic su Conferma per riavviare il mini program.


Da questo momento in poi, sull'interfaccia verrà visualizzato in modo persistente il pulsante fluttuante vConsole.

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

Come distinguere l'origine dei log
L'origine dei log può generalmente essere suddivisa in:
Log di sistema del mini program WeChat: Solitamente attivati durante il routing della pagina o i cambiamenti del ciclo di vita dei componenti, visualizzati in vConsole in caratteri blu.
Log di xr-frame: Stampati dal framework di rendering ufficiale, i log iniziano con
[xr-frame].Log personalizzati dall'utente: Stampati dallo sviluppatore tramite interfacce standard come
console.log().Log di errore del framework del mini program: Generati dal livello sottostante di WeChat, il contenuto inizia con
MiniProgramError.Log del plugin mini program Mega: Stampati internamente dal plugin mini program Mega, il contenuto del log inizia con nomi di classe racchiusi tra parentesi quadre (ad esempio [MegaTracker]), attualmente principalmente emessi durante la cattura di eccezioni.
Esempio 1:

La prima parte in caratteri blu sono log di sistema, che mostrano lo stato del routing e del caricamento della pagina.
La seconda parte inizia con
[xr-frame], mostrando informazioni sul ciclo di vita del framework di rendering.La terza parte è l'output personalizzato dallo sviluppatore.
Esempio 2:

Appaiono log che iniziano con nomi di classe come
[MegaTracker],[EasyARSession(xrframe)], ciò indica che il plugin Mega ha rilevato un'eccezione durante l'esecuzione.Esempio 3:

In
MiniProgramErrorappareWAXRFrameRenderContext.js, indicando un problema con l'uso di interfacce correlate a xr-frame o la configurazione dei componenti.Esempio 4:

Questo log indica che si è verificata un'eccezione durante l'esecuzione del metodo
onCloudLocalizationnel plugin mega, causando un errore nel framework del mini program.
Formato dei log del plugin mini program Mega
I log esportati tramite il metodo dumpLog(signal) sono separati da | e contengono in sequenza:
- Timestamp: Formato standard
ISO 8601, indica l'ora di sistema al momento della stampa del log. - Livello di log: Include
Info,Warning,Error,FatalError. - Nome della classe: Racchiuso tra parentesi quadre.
- Dettagli: Descrizione specifica del log.
- Chiamante: Solitamente
Unspecified(indica un processo di esecuzione naturale); se l'eccezione è causata da un'interfaccia chiamata dall'utente, viene visualizzatoUser. - Fase di esecuzione: Visualizzato come
Unspecifiedse non rilevante; altri campi indicano che l'eccezione si è verificata in una specifica fase di esecuzione.

Come registrare e inoltrare i log
Introduzione alle soluzioni per ottenere ed esportare i log.
Esportazione dei log da vConsole
Fare clic sul pulsante di copia a destra nella posizione in cui viene stampato il log per esportare.
Interfaccia dump log del plugin mini program Mega
Controllare il processo di esportazione dei log chiamando l'interfaccia dumpLog(signal):
- Passare
true: Avvia la registrazione. - Passare
false: Interrompe la registrazione e restituisce il percorso file temporaneo generato (tempFilePath).
Si consiglia generalmente di associare la logica di registrazione a un pulsante UI. All'inizio della registrazione, utilizzare il metodo wx.showToast() per segnalare l'avvio. Al termine della registrazione, utilizzare wx.shareFileMessage() per inoltrare il file registrato tramite chat WeChat.
/**
* Gestisce la logica di registrazione della Session
* @param signal true per iniziare la registrazione, false per terminare la registrazione e inoltrare
*/
dumpLog(signal: boolean): void {
// Chiama l'interfaccia per ottenere il percorso
const logPath = session.dumpLog(signal);
// Quando signal è true, l'interfaccia restituisce una stringa vuota, indicando che la registrazione è in corso
if (logPath.length == 0) {
wx.showToast({
title: 'Inizio registrazione log',
icon: 'success',
duration: 2000
});
return;
}
// Quando signal è false, elabora il percorso del file restituito
wx.shareFileMessage({
filePath: logPath,
success() {
wx.showToast({
title: 'Inoltro log riuscito',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: 'Inoltro log fallito',
icon: 'error',
duration: 2000
});
}
})
}
Questo esempio mostra come utilizzare il metodo
session.dumpLog()nel componente xr-frame per registrare e inoltrare file di log, fornendo anche i relativi avvisi Toast.
Importante
Se si incontrano problemi relativi al posizionamento o al tracking con Mega, anziché eccezioni del programma, oltre ai log, fornire sempre il video dello schermo e il file di dump della session dell'epoca. I soli file di log possono fornire solo riferimenti indiretti, mentre i video e i dati di dump sono la base principale per l'analisi dei problemi.