Table of Contents

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.

Debugging öffnen

Nach erneutem Öffnen wirksam

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

vConsole-Schaltfläche

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

Mini Program-Logs

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:

    Beispiel für Mini Program-Log 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:

    Beispiel für Mini Program-Log 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:

    Beispiel für Mini Program-Log 3

    In MiniProgramError erscheint WAXRFrameRenderContext.js, was darauf hinweist, dass es ein Problem bei der Verwendung xr-frame-bezogener Schnittstellen oder Komponentenkonfigurationen gibt.

  • Beispiel 4:

    Beispiel für Mini Program-Log 4

    Dieses Log zeigt, dass während der Ausführung der Methode onCloudLocalization im 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, wird User angezeigt.
  • Laufzeitphase: Unspecified bedeutet, dass keine Beachtung nötig ist; andere Felder bedeuten, dass die exception in einer bestimmten Laufzeitphase auftrat.

Mini Program-Logs

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.

Verwandte Themen