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.


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

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

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:

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:

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:

En
MiniProgramErrorapareceWAXRFrameRenderContext.js, lo que indica un problema al usar interfaces o configuraciones de componentes relacionados con xr-frame.Ejemplo 4:

Este log indica que se produjo una exception durante la ejecución del método
onCloudLocalizationen 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 muestraUser. - 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.

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.