Table of Contents

Análisis de logs en WeChat Mini Program

Este documento presenta el flujo completo para obtener y analizar logs en el entorno AR de WeChat Mini Program.

Usar vConsole de WeChat Mini Program

Como AR en WeChat Mini Program solo puede ejecutarse y depurarse en un dispositivo físico, usar vConsole para observar la salida en tiempo real es clave para la depuración. Para el uso básico, consulte la documentación oficial de WeChat Mini Program.

Cómo habilitar vConsole durante la depuración en dispositivo físico

En la interfaz AR, haga clic en el primer botón de la esquina superior derecha > haga clic en Development debugging en la barra de herramientas inferior > haga clic en Open debugging > en la ventana emergente haga clic en OK para reiniciar el Mini Program.

Abrir depuración

Surte efecto después de abrir de nuevo

Después, la interfaz mostrará continuamente el botón flotante vConsole.

Botón vConsole

Haga clic en el botón vConsole para ver todos los logs en ejecución:

Logs de Mini Program

Cómo distinguir las fuentes de logs

Las fuentes de logs suelen dividirse en:

  • Logs del sistema WeChat Mini Program: normalmente se activan al cambiar rutas de página o lifecycle de componentes, y se muestran en azul en vConsole.

  • Logs de xr-frame: impresos por el framework de renderizado oficial; el contenido del log empieza con [xr-frame].

  • Logs personalizados del usuario: impresos por el desarrollador mediante interfaces estándar como console.log().

  • Logs de error del framework Mini Program: lanzados por la capa subyacente de WeChat; el contenido empieza con MiniProgramError.

  • Logs del plugin Mega Mini Program: impresos internamente por el plugin Mega Mini Program; el contenido empieza con el nombre de clase entre corchetes, como [MegaTracker]. Actualmente se emiten principalmente al capturar exception.

  • Ejemplo 1:

    Ejemplo de log de Mini Program 1

    La primera parte en azul es el log del sistema, que muestra la ruta de página y el estado de carga.

    La segunda parte empieza con [xr-frame] y muestra información de lifecycle del framework de renderizado.

    La tercera parte es salida personalizada del desarrollador.

  • Ejemplo 2:

    Ejemplo de log de Mini Program 2

    Aparecen logs que empiezan con nombres de clase como [MegaTracker] y [EasyARSession(xrframe)], lo que significa que el plugin Mega capturó una exception de runtime.

  • Ejemplo 3:

    Ejemplo de log de Mini Program 3

    En MiniProgramError aparece WAXRFrameRenderContext.js, lo que indica un problema al usar interfaces o configuraciones de componentes relacionados con xr-frame.

  • Ejemplo 4:

    Ejemplo de log de Mini Program 4

    Este log indica que se produjo una exception durante la ejecución del método onCloudLocalization en el plugin mega, lo que hizo que el framework Mini Program lanzara un error.

Formato de logs del plugin Mega Mini Program

Los logs exportados por el método dumpLog(signal) se separan con |, y el contenido en orden es:

  • Timestamp: formato estándar ISO 8601, que indica la hora del sistema al imprimir el log.
  • Nivel de log: incluye Info, Warning, Error, FatalError.
  • Nombre de clase: encerrado entre corchetes.
  • Detalles: descripción concreta del log.
  • Caller: normalmente Unspecified, que indica un proceso natural de ejecución; si la exception fue causada por una llamada de interfaz del usuario, se muestra User.
  • Etapa de ejecución: si se muestra Unspecified, no requiere atención; otros campos indican que la exception ocurrió en una etapa de ejecución específica.

Logs de Mini Program

Cómo registrar y reenviar logs

Se presentan soluciones para obtener y exportar logs.

Exportar logs de vConsole

Haga clic en el botón copiar situado a la derecha del lugar donde se imprime el log para exportarlo.

Interfaz dump log del plugin Mega Mini Program

Controle el flujo de exportación de logs llamando a la interfaz dumpLog(signal):

  • Pasar true: iniciar el registro.
  • Pasar false: detener el registro y devolver la ruta temporal del archivo (tempFilePath) generada.

Normalmente se recomienda vincular la lógica de registro con un botón de UI. Al comenzar el registro, use el método wx.showToast() para indicar que el registro ha comenzado; al terminar, use el método wx.shareFileMessage() para reenviar el archivo registrado mediante chat de WeChat.

/**
 * gestiona la logica de grabacion de Session
 * @param signal true inicia la grabacion; false la detiene y la reenvia
 */
dumpLog(signal: boolean): void {
  // llama a la interfaz para obtener la ruta
  const logPath = session.dumpLog(signal);
  // cuando signal es true, la interfaz devuelve una cadena vacia para indicar que se esta grabando
  if (logPath.length == 0) {
      wx.showToast({
          title: '开始记录日志',
          icon: 'success',
          duration: 2000
      });
      return;
  }
  // cuando signal es false, procesa la ruta de archivo devuelta
  wx.shareFileMessage({
      filePath: logPath,
      success() {
          wx.showToast({
              title: '日志转发成功',
              icon: 'success',
              duration: 2000
          });
      },
      fail() {
          wx.showToast({
              title: '日志转发失败',
              icon: 'error',
              duration: 2000
          });
      }
  })
}

Este ejemplo muestra cómo usar el método session.dumpLog() en un componente xr-frame para registrar y reenviar archivos de log, y mostrar los avisos Toast correspondientes.


Importante

Si al usar Mega encuentra problemas relacionados con localization o tracking en lugar de una exception del programa, además de los logs, asegúrese de proporcionar el archivo de grabación de pantalla y el archivo session dump de ese momento. Un archivo de log puro solo puede servir como referencia lateral; la grabación de pantalla y los datos dump son la base central para solucionar problemas.

Temas relacionados