Table of Contents

Analisis log pada WeChat Mini Program

Dokumen ini memperkenalkan alur lengkap untuk memperoleh dan menganalisis log dalam lingkungan AR WeChat Mini Program.

Menggunakan vConsole WeChat Mini Program

Karena AR WeChat Mini Program hanya dapat dijalankan dan di-debug pada perangkat fisik, menggunakan vConsole untuk mengamati output real-time adalah kunci debugging. Penggunaan dasar dapat merujuk ke dokumentasi resmi WeChat Mini Program.

Cara mengaktifkan vConsole saat debugging perangkat fisik

Pada antarmuka AR, klik tombol pertama di pojok kanan atas > klik Development debugging pada toolbar bawah > klik Open debugging > klik OK pada jendela pop-up untuk memulai ulang Mini Program.

Buka debugging

Berlaku setelah dibuka ulang

Setelah itu, tombol mengambang vConsole akan terus ditampilkan pada antarmuka.

Tombol vConsole

Klik tombol vConsole untuk melihat semua log yang sedang berjalan:

Log Mini Program

Cara membedakan sumber log

Sumber log umumnya dapat dibagi menjadi:

  • Log sistem WeChat Mini Program: biasanya dipicu saat routing halaman berubah atau lifecycle komponen berubah, dan ditampilkan dengan teks biru di vConsole.

  • Log xr-frame: dicetak oleh framework rendering resmi, dan isi log diawali dengan [xr-frame].

  • Log kustom pengguna: dicetak oleh developer melalui antarmuka standar seperti console.log().

  • Log error framework Mini Program: dilempar oleh lapisan dasar WeChat, dan isinya diawali dengan MiniProgramError.

  • Log plugin Mega Mini Program: dicetak oleh bagian internal plugin Mega Mini Program, dan isi log diawali dengan nama class dalam tanda kurung siku, seperti [MegaTracker]. Saat ini terutama dikeluarkan saat menangkap exception.

  • Contoh 1:

    Contoh log Mini Program 1

    Bagian pertama berwarna biru adalah log sistem, yang menampilkan routing halaman dan status loading.

    Bagian kedua diawali dengan [xr-frame], yang menampilkan informasi lifecycle framework rendering.

    Bagian ketiga adalah output kustom developer.

  • Contoh 2:

    Contoh log Mini Program 2

    Muncul log yang diawali dengan nama class seperti [MegaTracker] dan [EasyARSession(xrframe)], yang berarti plugin Mega menangkap exception runtime.

  • Contoh 3:

    Contoh log Mini Program 3

    Teks WAXRFrameRenderContext.js muncul dalam MiniProgramError, yang menunjukkan ada masalah pada penggunaan antarmuka atau konfigurasi komponen terkait xr-frame.

  • Contoh 4:

    Contoh log Mini Program 4

    Log ini menunjukkan bahwa exception terjadi saat metode onCloudLocalization dalam plugin mega berjalan, sehingga framework Mini Program melempar error.

Format log plugin Mega Mini Program

Log yang diekspor oleh metode dumpLog(signal) dipisahkan dengan |, dan isinya berturut-turut adalah:

  • Timestamp: format standar ISO 8601, menunjukkan waktu sistem saat log dicetak.
  • Level log: termasuk Info, Warning, Error, FatalError.
  • Nama class: dibungkus dengan tanda kurung siku.
  • Detail: deskripsi log yang spesifik.
  • Caller: biasanya Unspecified, yang menunjukkan proses berjalan alami; jika exception disebabkan oleh pemanggilan antarmuka oleh pengguna, akan ditampilkan sebagai User.
  • Tahap runtime: ditampilkan sebagai Unspecified berarti tidak perlu diperhatikan; bidang lain berarti exception terjadi pada tahap runtime tertentu.

Log Mini Program

Cara merekam dan meneruskan log

Bagian ini memperkenalkan solusi memperoleh dan mengekspor log.

Mengekspor log vConsole

Klik tombol copy di sisi kanan lokasi log dicetak untuk mengekspor.

Antarmuka dump log plugin Mega Mini Program

Kontrol alur ekspor log dengan memanggil antarmuka dumpLog(signal):

  • Meneruskan true: mulai merekam.
  • Meneruskan false: berhenti merekam dan mengembalikan file temporary path (tempFilePath) yang dihasilkan.

Biasanya disarankan mengikat logika perekaman dengan tombol UI. Saat mulai merekam, gunakan metode wx.showToast() untuk memberi tahu bahwa perekaman dimulai. Saat perekaman selesai, gunakan metode wx.shareFileMessage() untuk meneruskan file rekaman melalui chat WeChat.

/**
 * menangani logika perekaman Session
 * @param signal true untuk mulai merekam, false untuk berhenti merekam dan meneruskan
 */
dumpLog(signal: boolean): void {
  // panggil antarmuka untuk mendapatkan path
  const logPath = session.dumpLog(signal);
  // saat signal bernilai true, antarmuka mengembalikan string kosong yang menunjukkan perekaman sedang berlangsung
  if (logPath.length == 0) {
      wx.showToast({
          title: '开始记录日志',
          icon: 'success',
          duration: 2000
      });
      return;
  }
  // saat signal bernilai false, proses path file yang dikembalikan
  wx.shareFileMessage({
      filePath: logPath,
      success() {
          wx.showToast({
              title: '日志转发成功',
              icon: 'success',
              duration: 2000
          });
      },
      fail() {
          wx.showToast({
              title: '日志转发失败',
              icon: 'error',
              duration: 2000
          });
      }
  })
}

Contoh ini menunjukkan cara menggunakan metode session.dumpLog() dalam komponen xr-frame untuk merekam dan meneruskan file log, serta memberikan prompt Toast yang sesuai.


Penting

Jika Anda mengalami masalah terkait localization atau tracking saat menggunakan Mega, bukan exception program, selain log, pastikan untuk menyediakan file screen recording dan file session dump saat itu. File log murni hanya dapat memberikan referensi sampingan; screen recording dan data dump adalah dasar inti untuk troubleshooting.

Topik terkait