Log-Analyse auf WeChat Mini Program
Dieses Dokument beschreibt den vollständigen Ablauf zum Erfassen und Analysieren von Logs in der AR-Umgebung von WeChat Mini Program.
vConsole von WeChat Mini Program verwenden
Da AR in WeChat Mini Program nur auf realen Geräten ausgeführt und debuggt werden kann, ist vConsole zur Beobachtung der Echtzeitausgabe ein wichtiger Bestandteil des Debuggings. Zur grundlegenden Verwendung siehe die offizielle Dokumentation von WeChat Mini Program.
vConsole beim Debugging auf realem Gerät aktivieren
Klicken Sie in der AR-Oberfläche oben rechts auf die erste Schaltfläche > klicken Sie in der unteren Werkzeugleiste auf Development debugging > klicken Sie auf Open debugging > klicken Sie im Popup-Fenster auf OK, um das Mini Program neu zu starten.


Danach wird in der Oberfläche dauerhaft die schwebende Schaltfläche vConsole angezeigt.

Klicken Sie auf die Schaltfläche vConsole, um alle aktuell laufenden Logs anzuzeigen:

Logquellen unterscheiden
Logquellen lassen sich allgemein einteilen in:
Systemlogs von WeChat Mini Program: werden normalerweise bei Seitenroutenwechseln oder Änderungen im Component lifecycle ausgelöst und in vConsole blau angezeigt.
xr-frame-Logs: werden vom offiziellen Rendering-Framework ausgegeben; der Loginhalt beginnt mit
[xr-frame].Benutzerdefinierte Logs: werden von Entwicklern über Standardschnittstellen wie
console.log()ausgegeben.Fehlerlogs des Mini Program-Frameworks: werden von der unteren WeChat-Schicht ausgelöst; der Inhalt beginnt mit
MiniProgramError.Logs des Mega Mini Program-Plugins: werden intern vom Mega Mini Program-Plugin ausgegeben; der Loginhalt beginnt mit einem Klassennamen in eckigen Klammern, etwa [MegaTracker]. Derzeit werden sie hauptsächlich beim Abfangen von exceptions ausgegeben.
Beispiel 1:

Der erste blaue Teil ist das Systemlog und zeigt Seitenroute und Ladezustand.
Der zweite Teil beginnt mit
[xr-frame]und zeigt lifecycle-Informationen des Rendering-Frameworks.Der dritte Teil ist benutzerdefinierte Ausgabe des Entwicklers.
Beispiel 2:

Es erscheinen Logs, die mit Klassennamen wie
[MegaTracker]und[EasyARSession(xrframe)]beginnen. Das bedeutet, dass das Mega-Plugin eine runtime exception abgefangen hat.Beispiel 3:

In
MiniProgramErrorerscheintWAXRFrameRenderContext.js, was darauf hinweist, dass es ein Problem bei der Verwendung xr-frame-bezogener Schnittstellen oder Komponentenkonfigurationen gibt.Beispiel 4:

Dieses Log zeigt, dass während der Ausführung der Methode
onCloudLocalizationim mega-Plugin eine exception aufgetreten ist, wodurch das Mini Program-Framework einen Fehler ausgelöst hat.
Logformat des Mega Mini Program-Plugins
Die von der Methode dumpLog(signal) exportierten Logs sind durch | getrennt. Der Inhalt ist der Reihe nach:
- Zeitstempel: Standardformat
ISO 8601, zeigt die Systemzeit beim Drucken des Logs. - Loglevel: umfasst
Info,Warning,Error,FatalError. - Klassenname: in eckigen Klammern.
- Details: konkrete Logbeschreibung.
- Caller: normalerweise
Unspecified, was den normalen Laufprozess bezeichnet; wenn eine exception durch einen Benutzeraufruf einer Schnittstelle ausgelöst wurde, wirdUserangezeigt. - Laufzeitphase:
Unspecifiedbedeutet, dass keine Beachtung nötig ist; andere Felder bedeuten, dass die exception in einer bestimmten Laufzeitphase auftrat.

Logs aufzeichnen und weiterleiten
Hier werden Methoden zum Erfassen und Exportieren von Logs vorgestellt.
vConsole-Logs exportieren
Klicken Sie an der Stelle, an der das Log gedruckt wird, rechts auf die Kopieren-Schaltfläche, um zu exportieren.
dump log-Schnittstelle des Mega Mini Program-Plugins
Steuern Sie den Logexport, indem Sie die Schnittstelle dumpLog(signal) aufrufen:
trueübergeben: Aufzeichnung starten.falseübergeben: Aufzeichnung stoppen und den erzeugten temporären Dateipfad (tempFilePath) zurückgeben.
Normalerweise wird empfohlen, die Aufzeichnungslogik an eine UI-Schaltfläche zu binden. Verwenden Sie beim Start der Aufzeichnung wx.showToast(), um den Beginn anzuzeigen; verwenden Sie beim Ende der Aufzeichnung wx.shareFileMessage(), um die aufgezeichnete Datei über einen WeChat-Chat weiterzuleiten.
/**
* 处理 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
});
}
})
}
Dieses Beispiel zeigt, wie die Methode
session.dumpLog()in einer xr-frame-Komponente verwendet wird, um Logdateien aufzuzeichnen und weiterzuleiten, und wie entsprechende Toast-Hinweise ausgegeben werden.
Wichtig
Wenn bei Verwendung von Mega Probleme mit localization oder tracking auftreten und keine Programm-exception, stellen Sie zusätzlich zu Logs unbedingt die damalige Bildschirmaufnahme und die session dump-Datei bereit. Reine Logdateien können nur indirekte Hinweise liefern; Bildschirmaufnahme und dump-Daten sind die zentrale Grundlage der Problemanalyse.