Protokollanalyse auf WeChat Mini-Programmen
Dieser Artikel beschreibt den vollständigen Workflow zur Protokollerfassung und -analyse in der WeChat Mini-Programm AR-Umgebung.
Verwendung von vConsole in WeChat Mini-Programmen
Da WeChat Mini-Programm AR nur auf echten Geräten ausgeführt und debuggt werden kann, ist die Verwendung von vConsole zur Beobachtung der Echtzeitausgabe entscheidend für das Debugging. Grundlegende Verwendungsmethoden können in der offiziellen WeChat Mini-Programm-Dokumentation nachgelesen werden.
Aktivierung von vConsole während des Debuggings auf dem echten Gerät
In der AR-Oberfläche auf die Schaltfläche oben rechts klicken > in der unteren Symbolleiste auf Entwicklungsdebugging klicken > auf Debugging öffnen klicken > im Popup-Fenster auf Bestätigen klicken, um das Mini-Programm neu zu starten.


Danach wird dauerhaft der vConsole-schwebende Knopf auf der Oberfläche angezeigt.

Durch Klicken auf die vConsole-Schaltfläche können alle aktuell ausgeführten Protokolle eingesehen werden:

Unterscheidung von Protokollquellen
Protokollquellen können generell unterteilt werden in:
Systemprotokolle des WeChat Mini-Programms: Werden normalerweise bei Seitenroutensprüngen oder Komponentenlebenszyklusänderungen ausgelöst und in vConsole in blauer Schrift angezeigt.
xr-frame-Protokolle: Werden vom offiziellen Rendering-Framework ausgegeben und beginnen mit
[xr-frame].Benutzerdefinierte Protokolle: Vom Entwickler über
console.log()und andere Standardinterfaces ausgegeben.Fehlerprotokolle des Mini-Programm-Frameworks: Werden von der WeChat-Basisschicht ausgelöst und beginnen mit
MiniProgramError.Mega Mini-Programm-Plugin-Protokolle: Intern vom Mega Mini-Programm-Plugin ausgegeben, beginnen mit einem in eckige Klammern eingeschlossenen Klassennamen (z. B. [MegaTracker]) und werden derzeit hauptsächlich bei Ausnahmefällen ausgegeben.
Beispiel 1:

Der erste Teil in blauer Schrift ist ein Systemprotokoll und zeigt den Seitenrouting- und Ladestatus an.
Der zweite Teil beginnt mit
[xr-frame]und zeigt Lebenszyklusinformationen des Rendering-Frameworks.Der dritte Teil ist eine benutzerdefinierte Ausgabe des Entwicklers.
Beispiel 2:

Es erscheinen Protokolle, die mit
[MegaTracker],[EasyARSession(xrframe)]usw. beginnen, was darauf hinweist, dass das Mega-Plugin eine Laufzeitausnahme erfasst hat.Beispiel 3:

In
MiniProgramErrorerscheintWAXRFrameRenderContext.js, was darauf hindeutet, dass bei der Verwendung xr-frame-bezogener Interfaces oder Komponentenkonfigurationen ein Problem aufgetreten ist.Beispiel 4:

Dieses Protokoll zeigt an, dass während der Ausführung der Methode
onCloudLocalizationim mega-Plugin eine Ausnahme aufgetreten ist, die dazu führte, dass das Mini-Programm-Framework einen Fehler auslöste.
Protokollformat des Mega Mini-Programm-Plugins
Von der dumpLog(signal)-Methode exportierte Protokolle sind mit | getrennt und enthalten nacheinander:
- Zeitstempel: Im
ISO 8601-Standardformat, gibt die Systemzeit zum Zeitpunkt der Protokollausgabe an. - Protokollebene: Enthält
Info,Warning,Error,FatalError. - Klassenname: Eingeschlossen in eckige Klammern.
- Detailinformationen: Spezifische Protokollbeschreibung.
- Aufrufer: Normalerweise
Unspecified(gibt einen natürlichen Ausführungsprozess an); wenn es sich um eine durch Benutzeraufruf ausgelöste Ausnahme handelt, wirdUserangezeigt. - Betriebsphase:
Unspecifiedbedeutet, dass es nicht beachtet werden muss; andere Felder zeigen an, dass die Ausnahme in einer bestimmten Betriebsphase aufgetreten ist.

Protokollierung und Weiterleitung von Protokollen
Einführung in die Beschaffung und den Export von Protokollen.
Protokollexport über vConsole
An der Stelle, an der das Protokoll ausgegeben wird, auf die rechte Kopierschaltfläche klicken, um zu exportieren.
dump log-Schnittstelle des Mega Mini-Programm-Plugins
Steuerung des Protokollexportprozesses durch Aufruf der dumpLog(signal)-Schnittstelle:
- Übergabe von
true: Startet die Aufzeichnung. - Übergabe von
false: Beendet die Aufzeichnung und gibt den generierten temporären Dateipfad (tempFilePath) zurück.
Normalerweise wird empfohlen, die Aufzeichnungslogik an eine UI-Schaltfläche zu binden. Bei Aufzeichnungsbeginn sollte eine Hinweismeldung über die wx.showToast()-Methode angezeigt werden. Bei Aufzeichnungsende sollte die aufgezeichnete Datei über die wx.shareFileMessage()-Methode per WeChat-Chat weitergeleitet werden.
/**
* Behandelt die Aufzeichnungslogik der Session
* @param signal true startet die Aufzeichnung, false beendet die Aufzeichnung und leitet weiter
*/
dumpLog(signal: boolean): void {
// Schnittstelle aufrufen, um den Pfad zu erhalten
const logPath = session.dumpLog(signal);
// Wenn signal true ist, gibt die Schnittstelle einen leeren String zurück, was eine aktive Aufzeichnung anzeigt
if (logPath.length == 0) {
wx.showToast({
title: 'Protokollaufzeichnung gestartet',
icon: 'success',
duration: 2000
});
return;
}
// Wenn signal false ist, wird der zurückgegebene Dateipfad verarbeitet
wx.shareFileMessage({
filePath: logPath,
success() {
wx.showToast({
title: 'Protokollweiterleitung erfolgreich',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: 'Protokollweiterleitung fehlgeschlagen',
icon: 'error',
duration: 2000
});
}
})
}
Dieses Beispiel zeigt, wie die
session.dumpLog()-Methode in der xr-frame-Komponente verwendet wird, um Protokolldateien aufzuzeichnen und weiterzuleiten, und entsprechende Toast-Hinweise gibt.
Wichtig
Wenn bei der Verwendung von Mega Probleme im Zusammenhang mit Lokalisierung oder Tracking auftreten und nicht mit Programmausnahmen, müssen zusätzlich zu Protokollen unbedingt die entsprechende Bildschirmaufnahme und die Session-Dump-Datei der betreffenden Zeit bereitgestellt werden. Reine Protokolldateien können nur als Referenz dienen, Bildschirmaufnahmen und Dump-Daten sind die Kernbasis für die Problembehebung.