Table of Contents

Análise de log no mini programa wechat

Este artigo apresenta o fluxo completo para obtenção e análise de logs no ambiente AR do mini programa wechat.

Usando o vConsole do mini programa wechat

Como o AR do mini programa wechat só pode ser executado e depurado em dispositivos reais, usar o vConsole para observar a saída em tempo real é fundamental para depuração. O uso básico pode ser consultado na documentação oficial do mini programa wechat.

Como ativar o vConsole na depuração em dispositivo real

Na interface AR, clique no primeiro botão no canto superior direito > clique em depuração de desenvolvimento na barra de ferramentas inferior > clique em abrir depuração > na janela pop-up, clique em confirmar para reiniciar o mini programa.

Abrir depuração

Efeito após reabertura

Posteriormente, o botão flutuante vConsole será exibido continuamente na interface.

Botão vConsole

Clique no botão vConsole para visualizar todos os logs atuais em execução:

Logs do mini programa

Como distinguir a origem do log

As origens dos logs geralmente podem ser divididas em:

  • Logs do sistema do mini programa wechat: Normalmente acionados durante mudanças de rota de página ou ciclo de vida de componentes, exibidos em azul no vConsole.

  • Logs do xr-frame: Impressos pela estrutura de renderização oficial, começam com [xr-frame].

  • Logs personalizados pelo usuário: Impressos pelo desenvolvedor através de interfaces padrão como console.log().

  • Logs de erro da estrutura do mini programa: Lançados pela base do WeChat, começam com MiniProgramError.

  • Logs do plug-in Mega mini programa: Impressos internamente pelo plug-in Mega mini programa, começam com nomes de classe entre colchetes (ex: [MegaTracker]), atualmente principalmente saída ao capturar exceções.

  • Exemplo 1:

    Exemplo de log de mini programa 1

    A primeira parte em azul são logs do sistema, mostrando o estado de rota e carregamento da página.

    A segunda parte começa com [xr-frame], mostrando informações do ciclo de vida da estrutura de renderização.

    A terceira parte é saída personalizada do desenvolvedor.

  • Exemplo 2:

    Exemplo de log de mini programa 2

    Aparecem logs começando com [MegaTracker], [EasyARSession(xrframe)], etc., indicando que o plug-in Mega capturou uma exceção de execução.

  • Exemplo 3:

    Exemplo de log de mini programa 3

    Em MiniProgramError aparece WAXRFrameRenderContext.js, indicando problema com interface relacionada ao xr-frame ou configuração de componente.

  • Exemplo 4:

    Exemplo de log de mini programa 4

    Este log indica que o método onCloudLocalization no plug-in mega encontrou uma exceção durante a execução, causando erro na estrutura do mini programa.

Formato de log do plug-in Mega mini programa

Logs exportados pelo método dumpLog(signal) usam | como separador, com conteúdo sequencial de:

  • Timestamp: Formato padrão ISO 8601, indicando o horário do sistema ao imprimir o log.
  • Nível de log: Inclui Info, Warning, Error, FatalError.
  • Nome da classe: Entre colchetes.
  • Detalhes: Descrição específica do log.
  • Chamador: Normalmente Unspecified (indica processo de execução natural); se exceção causada por chamada de interface do usuário, mostra User.
  • Fase de execução: Unspecified indica irrelevante; outros valores indicam exceção em fase específica.

Log do mini programa

Como registrar e encaminhar logs

Introduz esquemas para obtenção e exportação de logs.

Exportar logs do vConsole

Clique no botão de cópia à direita da posição de impressão do log para exportar.

Interface dump log do plug-in Mega mini programa

Controle o processo de exportação de logs chamando a interface dumpLog(signal):

  • Passar true: Inicia registro.
  • Passar false: Para registro e retorna o caminho temporário do arquivo (tempFilePath).

Geralmente recomenda-se vincular a lógica de registro a um botão de UI. Ao iniciar registro, use wx.showToast() para notificar início. Ao terminar, use wx.shareFileMessage() para encaminhar o arquivo via chat do WeChat.

/**
 * Processa lógica de registro da Session
 * @param signal true para iniciar registro, false para parar e encaminhar
 */
dumpLog(signal: boolean): void {
  // Chama interface para obter caminho
  const logPath = session.dumpLog(signal);
  // Quando signal é true, interface retorna string vazia, indicando registro em andamento
  if (logPath.length == 0) {
      wx.showToast({
          title: 'Iniciar registro de log',
          icon: 'success',
          duration: 2000
      });
      return;
  }
  // Quando signal é false, processa caminho de arquivo retornado
  wx.shareFileMessage({
      filePath: logPath,
      success() {
          wx.showToast({
              title: 'Log encaminhado com sucesso',
              icon: 'success',
              duration: 2000
          });
      },
      fail() {
          wx.showToast({
              title: 'Falha ao encaminhar log',
              icon: 'error',
              duration: 2000
          });
      }
  })
}

Este exemplo demonstra como usar o método session.dumpLog() no componente xr-frame para registrar e encaminhar arquivos de log, com notificações Toast correspondentes.


Importante

Se encontrar problemas de localização ou rastreamento com o Mega, em vez de exceções de programa, além dos logs, forneça obrigatoriamente o arquivo de gravação de tela e o arquivo de dump da session do momento. Arquivos de log puros fornecem apenas referência indireta; gravações de tela e dados de dump são a base central para investigação de problemas.

Tópicos relacionados