Analyse des journaux sur les mini-programmes WeChat
Cet article présente le processus complet d'obtention et d'analyse des journaux dans l'environnement AR des mini-programmes WeChat.
Utiliser le vConsole des mini-programmes WeChat
Étant donné que l'AR des mini-programmes WeChat ne peut être exécuté et débogué que sur un appareil physique, l'utilisation de vConsole pour observer les sorties en temps réel est essentielle au débogage. L'utilisation de base peut être consultée dans la documentation officielle des mini-programmes WeChat.
Comment activer vConsole lors du débogage sur appareil physique
Dans l'interface AR, cliquez sur le premier bouton en haut à droite > Cliquez sur Débogage de développement dans la barre d'outils inférieure > Cliquez sur Ouvrir le débogage > Dans la fenêtre contextuelle, cliquez sur OK pour redémarrer le mini-programme.


Par la suite, le bouton flottant vConsole restera affiché en permanence sur l'interface.

Cliquez sur le bouton vConsole pour afficher tous les journaux en cours d'exécution :

Comment différencier la source des journaux
Les sources des journaux peuvent généralement être classées comme suit :
Journaux système du mini-programme WeChat : Généralement déclenchés lors des changements de routage de page ou de cycle de vie des composants, affichés en bleu dans vConsole.
Journaux xr-frame : Imprimés par le moteur de rendu officiel, commençant par
[xr-frame].Journaux personnalisés par l'utilisateur : Imprimés par le développeur via des interfaces standard comme
console.log().Journaux d'erreur du framework du mini-programme : Lancés par la couche basse de WeChat, commençant par
MiniProgramError.Journaux du plugin Mega pour mini-programme : Imprimés en interne par le plugin Mega pour mini-programme, les journaux commencent par des noms de classes entre crochets (par ex. [MegaTracker]), actuellement principalement sortis lors de la capture d'exceptions.
Exemple 1 :

La première partie en bleu correspond aux journaux système, montrant le routage des pages et leur état de chargement.
La deuxième partie commençant par
[xr-frame]montre les informations du cycle de vie du moteur de rendu.La troisième partie correspond aux sorties personnalisées du développeur.
Exemple 2 :

Apparaissent des journaux commençant par
[MegaTracker],[EasyARSession(xrframe)], etc., ce qui indique que le plugin Mega a capturé une exception d'exécution.Exemple 3 :

Dans
MiniProgramErrorapparaîtWAXRFrameRenderContext.js, ce qui indique un problème avec l'utilisation des interfaces ou la configuration des composants liés à xr-frame.Exemple 4 :

Ce journal indique qu'une exception s'est produite lors de l'exécution de la méthode
onCloudLocalizationdans le plugin mega, provoquant une erreur lancée par le framework du mini-programme.
Format des journaux du plugin Mega pour mini-programme
Les journaux exportés par la méthode dumpLog(signal) sont séparés par |, et contiennent dans l'ordre :
- Horodatage : Format standard
ISO 8601, indiquant l'heure système lors de l'impression du journal. - Niveau de journal : Inclut
Info,Warning,Error,FatalError. - Nom de la classe : Entre crochets.
- Détails : Description spécifique du journal.
- Appelant : Généralement
Unspecified(indiquant un processus d'exécution naturel) ; si l'exception est provoquée par l'appel d'une interface utilisateur, afficheUser. - Phase d'exécution : Affiche
Unspecifiedsi non pertinent ; affiche d'autres champs si l'exception se produit lors d'une phase d'exécution spécifique.

Comment enregistrer et transférer les journaux
Présentation des méthodes d'obtention et d'exportation des journaux.
Exporter les journaux depuis vConsole
Cliquez sur le bouton de copie à droite de l'emplacement du journal imprimé pour exporter.
Interface dump log du plugin Mega pour mini-programme
Contrôlez le processus d'exportation des journaux en appelant l'interface dumpLog(signal) :
- Passer
true: Démarre l'enregistrement. - Passer
false: Arrête l'enregistrement et renvoie le chemin temporaire du fichier généré (tempFilePath).
Il est généralement conseillé de lier la logique d'enregistrement à un bouton UI. Lors du démarrage de l'enregistrement, indiquez-le via la méthode wx.showToast(). À la fin de l'enregistrement, transférez le fichier enregistré via une discussion WeChat en utilisant la méthode wx.shareFileMessage().
/**
* Gère la logique d'enregistrement de la Session
* @param signal true pour démarrer l'enregistrement, false pour arrêter l'enregistrement et transférer
*/
dumpLog(signal: boolean): void {
// Appeler l'interface pour obtenir le chemin
const logPath = session.dumpLog(signal);
// Lorsque signal est true, l'interface renvoie une chaîne vide, indiquant que l'enregistrement est en cours
if (logPath.length == 0) {
wx.showToast({
title: 'Début de l\'enregistrement des journaux',
icon: 'success',
duration: 2000
});
return;
}
// Lorsque signal est false, traiter le chemin de fichier renvoyé
wx.shareFileMessage({
filePath: logPath,
success() {
wx.showToast({
title: 'Transfert du journal réussi',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: 'Échec du transfert du journal',
icon: 'error',
duration: 2000
});
}
})
}
Cet exemple montre comment utiliser la méthode
session.dumpLog()dans un composant xr-frame pour enregistrer et transférer un fichier journal, tout en fournissant les notifications Toast correspondantes.
Important
Si vous rencontrez des problèmes liés à la localisation ou au suivi avec Mega, plutôt qu'à une exception de programme, fournissez impérativement les fichiers d'enregistrement vidéo et de dump de session de l'époque, en plus des journaux. Les fichiers de journaux purs ne fournissent qu'une référence indirecte ; les enregistrements vidéo et les données de dump sont les éléments essentiels pour résoudre les problèmes.