Table of Contents

Analisi dei log su WeChat Mini Program

Questo documento presenta il flusso completo per ottenere e analizzare i log nell'ambiente AR di WeChat Mini Program.

Usare vConsole di WeChat Mini Program

Poiché AR in WeChat Mini Program può essere eseguito e debuggato solo su dispositivo reale, usare vConsole per osservare l'output in tempo reale è fondamentale per il debug. Per l'uso di base consultare la documentazione ufficiale di WeChat Mini Program.

Come abilitare vConsole durante il debug su dispositivo reale

Nell'interfaccia AR fare clic sul primo pulsante in alto a destra > fare clic su Development debugging nella toolbar inferiore > fare clic su Open debugging > nella finestra popup fare clic su OK per riavviare il Mini Program.

Aprire debug

Effettivo dopo riapertura

In seguito sull'interfaccia verrà mostrato continuamente il pulsante flottante vConsole.

Pulsante vConsole

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

Log Mini Program

Come distinguere la fonte dei log

Le fonti dei log possono generalmente essere suddivise in:

  • Log di sistema WeChat Mini Program: di solito attivati da cambi di route pagina o cambiamenti nel lifecycle dei componenti, mostrati in blu in vConsole.

  • Log xr-frame: stampati dal framework di rendering ufficiale, con contenuto che inizia con [xr-frame].

  • Log personalizzati utente: stampati dallo sviluppatore tramite interfacce standard come console.log().

  • Log di errore del framework Mini Program: lanciati dal livello sottostante di WeChat, con contenuto che inizia con MiniProgramError.

  • Log del plugin Mega Mini Program: stampati internamente dal plugin Mega Mini Program, con contenuto che inizia con il nome della classe fra parentesi quadre, come [MegaTracker]. Attualmente vengono emessi soprattutto quando vengono catturate exception.

  • Esempio 1:

    Esempio log Mini Program 1

    La prima parte in blu è il log di sistema e mostra la route della pagina e lo stato di caricamento.

    La seconda parte inizia con [xr-frame] e mostra informazioni di lifecycle del framework di rendering.

    La terza parte è output personalizzato dello sviluppatore.

  • Esempio 2:

    Esempio log Mini Program 2

    Appaiono log che iniziano con nomi di classe come [MegaTracker] e [EasyARSession(xrframe)], il che significa che il plugin Mega ha catturato una runtime exception.

  • Esempio 3:

    Esempio log Mini Program 3

    In MiniProgramError appare WAXRFrameRenderContext.js, indicando un problema nell'uso di interfacce o configurazioni di componenti relative a xr-frame.

  • Esempio 4:

    Esempio log Mini Program 4

    Questo log indica che si è verificata una exception durante l'esecuzione del metodo onCloudLocalization nel plugin mega, causando un errore lanciato dal framework Mini Program.

Formato dei log del plugin Mega Mini Program

I log esportati dal metodo dumpLog(signal) sono separati da |, e il contenuto è nell'ordine:

  • Timestamp: formato standard ISO 8601, indica l'ora di sistema in cui il log viene stampato.
  • Livello log: include Info, Warning, Error, FatalError.
  • Nome classe: racchiuso tra parentesi quadre.
  • Dettagli: descrizione specifica del log.
  • Caller: solitamente Unspecified, indica un processo di esecuzione naturale; se la exception è causata da una chiamata interfaccia dell'utente, viene mostrato User.
  • Fase di esecuzione: Unspecified significa che non richiede attenzione; altri campi indicano che la exception si è verificata in una fase di esecuzione specifica.

Log Mini Program

Come registrare e inoltrare i log

Questa sezione introduce soluzioni per ottenere ed esportare i log.

Esportare log vConsole

Fare clic sul pulsante copia a destra della posizione in cui il log viene stampato per esportarlo.

Interfaccia dump log del plugin Mega Mini Program

Controllare il flusso di esportazione dei log chiamando l'interfaccia dumpLog(signal):

  • Passare true: avvia la registrazione.
  • Passare false: arresta la registrazione e restituisce il percorso temporaneo del file (tempFilePath) generato.

Di solito si consiglia di associare la logica di registrazione a un pulsante UI. All'inizio della registrazione usare il metodo wx.showToast() per indicare che la registrazione è iniziata; al termine della registrazione usare il metodo wx.shareFileMessage() per inoltrare il file registrato tramite chat WeChat.

/**
 * gestisce la logica di registrazione di Session
 * @param signal true avvia la registrazione, false la termina e la inoltra
 */
dumpLog(signal: boolean): void {
  // chiama l interfaccia per ottenere il percorso
  const logPath = session.dumpLog(signal);
  // quando signal e true, l interfaccia restituisce una stringa vuota per indicare che la registrazione e in corso
  if (logPath.length == 0) {
      wx.showToast({
          title: '开始记录日志',
          icon: 'success',
          duration: 2000
      });
      return;
  }
  // quando signal e false, elabora il percorso del file restituito
  wx.shareFileMessage({
      filePath: logPath,
      success() {
          wx.showToast({
              title: '日志转发成功',
              icon: 'success',
              duration: 2000
          });
      },
      fail() {
          wx.showToast({
              title: '日志转发失败',
              icon: 'error',
              duration: 2000
          });
      }
  })
}

Questo esempio mostra come usare il metodo session.dumpLog() in un componente xr-frame per registrare e inoltrare file di log, fornendo i relativi prompt Toast.


Importante

Se usando Mega si incontrano problemi relativi a localization o tracking e non exception del programma, oltre ai log assicurarsi di fornire il file di screen recording e il file session dump di quel momento. Un semplice file di log può offrire solo un riferimento indiretto; screen recording e dati dump sono la base fondamentale per il troubleshooting.

Argomenti correlati