Análise de logs no WeChat Mini Program
Este documento apresenta o fluxo completo para obter e analisar logs no ambiente AR do WeChat Mini Program.
Usar vConsole do WeChat Mini Program
Como AR no WeChat Mini Program só pode ser executado e depurado em dispositivo físico, usar vConsole para observar a saída em tempo real é essencial para a depuração. Para uso básico, consulte a documentação oficial do WeChat Mini Program.
Como habilitar vConsole durante depuração em dispositivo físico
Na interface AR, clique no primeiro botão no canto superior direito > clique em Development debugging na barra de ferramentas inferior > clique em Open debugging > na janela pop-up, clique em OK para reiniciar o Mini Program.


Depois disso, a interface exibirá continuamente o botão flutuante vConsole.

Clique no botão vConsole para ver todos os logs em execução no momento:

Como distinguir fontes de logs
As fontes de logs geralmente podem ser divididas em:
Logs do sistema WeChat Mini Program: normalmente acionados em mudanças de rota de página ou mudanças de lifecycle de componentes, exibidos em azul no vConsole.
Logs xr-frame: impressos pelo framework oficial de renderização, com conteúdo iniciado por
[xr-frame].Logs personalizados do usuário: impressos pelo desenvolvedor por interfaces padrão como
console.log().Logs de erro do framework Mini Program: lançados pela camada inferior do WeChat, com conteúdo iniciado por
MiniProgramError.Logs do plugin Mega Mini Program: impressos internamente pelo plugin Mega Mini Program, com conteúdo iniciado pelo nome da classe entre colchetes, como [MegaTracker]. Atualmente são emitidos principalmente ao capturar exception.
Exemplo 1:

A primeira parte em azul é o log do sistema, mostrando a rota da página e o estado de carregamento.
A segunda parte começa com
[xr-frame]e mostra informações de lifecycle do framework de renderização.A terceira parte é saída personalizada do desenvolvedor.
Exemplo 2:

Aparecem logs iniciados por nomes de classe como
[MegaTracker]e[EasyARSession(xrframe)], o que significa que o plugin Mega capturou uma runtime exception.Exemplo 3:

WAXRFrameRenderContext.jsaparece emMiniProgramError, indicando que houve problema ao usar interfaces ou configurações de componentes relacionadas ao xr-frame.Exemplo 4:

Este log indica que ocorreu uma exception durante a execução do método
onCloudLocalizationno plugin mega, fazendo o framework Mini Program lançar um erro.
Formato de log do plugin Mega Mini Program
Os logs exportados pelo método dumpLog(signal) são separados por |, e o conteúdo em sequência é:
- Timestamp: formato padrão
ISO 8601, indicando o horário do sistema no momento da impressão do log. - Nível do log: inclui
Info,Warning,Error,FatalError. - Nome da classe: envolvido por colchetes.
- Detalhes: descrição específica do log.
- Caller: normalmente
Unspecified, indicando processo de execução natural; se a exception foi causada por chamada de interface do usuário, será exibidoUser. - Etapa de execução: exibido como
Unspecifiedsignifica que não precisa de atenção; outros campos indicam que a exception ocorreu em uma etapa de execução específica.

Como gravar e encaminhar logs
Apresenta soluções para obter e exportar logs.
Exportar logs do vConsole
Clique no botão copiar à direita do local onde o log é impresso para exportar.
Interface dump log do plugin Mega Mini Program
Controle o fluxo de exportação de logs chamando a interface dumpLog(signal):
- Passar
true: iniciar gravação. - Passar
false: parar gravação e retornar o caminho temporário do arquivo (tempFilePath) gerado.
Normalmente recomenda-se vincular a lógica de gravação a um botão de UI. Ao iniciar a gravação, use o método wx.showToast() para indicar o início; ao terminar, use o método wx.shareFileMessage() para encaminhar o arquivo gravado por chat WeChat.
/**
* processa a logica de gravacao de Session
* @param signal true inicia a gravacao; false encerra a gravacao e encaminha
*/
dumpLog(signal: boolean): void {
// chama a interface para obter o caminho
const logPath = session.dumpLog(signal);
// quando signal e true, a interface retorna uma string vazia para indicar que esta gravando
if (logPath.length == 0) {
wx.showToast({
title: '开始记录日志',
icon: 'success',
duration: 2000
});
return;
}
// quando signal e false, processa o caminho de arquivo retornado
wx.shareFileMessage({
filePath: logPath,
success() {
wx.showToast({
title: '日志转发成功',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: '日志转发失败',
icon: 'error',
duration: 2000
});
}
})
}
Este exemplo demonstra como usar o método
session.dumpLog()em um componente xr-frame para gravar e encaminhar arquivos de log, além de fornecer os prompts Toast correspondentes.
Importante
Se ao usar Mega você encontrar problemas relacionados a localization ou tracking, e não uma exception do programa, além dos logs, certifique-se de fornecer o arquivo de gravação de tela e o arquivo session dump daquele momento. Um arquivo de log puro só pode oferecer referência lateral; a gravação de tela e os dados dump são a base central da solução de problemas.