Melihat log dengan Logcat

Jendela Logcat di Android Studio membantu Anda men-debug aplikasi dengan menampilkan log dari perangkat secara real time—misalnya, pesan yang Anda tambahkan ke aplikasi dengan class Log, pesan dari layanan yang berjalan di Android, atau pesan sistem, seperti saat pembersihan sampah memori dilakukan. Saat aplikasi menampilkan pengecualian, Logcat akan menampilkan pesan yang diikuti dengan stack trace terkait yang berisi link ke baris kode.

Memulai jendela Logcat

Untuk melihat pesan log aplikasi Anda, lakukan hal berikut.

  1. Di Android Studio, bangun dan jalankan aplikasi Anda di emulator atau perangkat fisik.
  2. Dari panel menu, pilih View > Tool Windows > Logcat.

Secara default, Logcat akan men-scroll ke bagian akhir. Mengklik tampilan Logcat atau men-scroll ke atas menggunakan roda mouse akan menonaktifkan fitur ini. Untuk mengaktifkannya kembali, klik Scroll to the End Ikon Scroll to the End dari toolbar. Anda juga dapat menggunakan toolbar untuk menghapus, menjeda, atau memulai ulang Logcat.

UI jendela Logcat

Gambar 1. Logcat memformat log agar informasi yang berguna lebih mudah dipindai, seperti tag dan pesan, serta mengidentifikasi berbagai jenis log, seperti peringatan dan error.

Cara membaca log

Setiap log memiliki tanggal, stempel waktu, ID proses dan thread, tag, nama paket, prioritas, dan pesan yang terkait dengannya. Tag yang berbeda memiliki warna unik yang membantu mengidentifikasi jenis log. Setiap entri log memiliki prioritas FATAL, ERROR, WARNING, INFO, DEBUG, atau VERBOSE.

Misalnya, pesan log berikut memiliki prioritas DEBUG dan tag ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

Mengonfigurasi tampilan log

Tampilan log standar menampilkan tanggal, waktu, ID proses dan thread, tag, nama paket, prioritas, dan pesan yang terkait dengannya. Secara default, baris pesan tidak digabungkan dalam tampilan log, tetapi Anda dapat menggunakan opsi Soft-Wrap Ikon Soft-Wrap dari toolbar Logcat.

Anda dapat beralih ke tampilan Compact, yang secara default menampilkan lebih sedikit informasi, dengan mengklik Configure Logcat Formatting Options dari toolbar Logcat.

Untuk mengonfigurasi seberapa banyak informasi yang ingin ditampilkan lebih lanjut, pilih Modify Views, dan pilih apakah Anda ingin melihat stempel waktu, tag, ID proses, atau nama paket yang ditampilkan.

Mengubah skema warna

Untuk mengubah skema warna, buka Android Studio > Settings > Editor > Color Scheme. Untuk mengubah skema warna tampilan log Anda, pilih Android Logcat. Untuk mengubah skema warna filter, pilih Filter Logcat.

Opsi konfigurasi tambahan

Untuk opsi konfigurasi tambahan, buka Android Studio > Settings > Tools > Logcat. Dari sini, Anda dapat memilih ukuran buffer siklus Logcat, filter default untuk jendela Logcat baru, dan apakah Anda ingin menambahkan filter dari histori ke pelengkapan otomatis.

Menggunakan Logcat di beberapa jendela

Tab membantu Anda beralih antarperangkat atau kueri yang berbeda dengan mudah. Anda dapat membuat beberapa tab Logcat dengan mengklik New Tab Ikon New Tab. Dengan mengklik kanan tab, Anda dapat mengganti nama dan mengatur ulang tab.

Selain itu, Anda dapat membagi tampilan dalam tab untuk memudahkan Anda membandingkan antara dua kumpulan log. Untuk membuat pemisahan, klik kanan di tampilan log atau klik opsi Split Panels dari toolbar, lalu pilih Split Right atau Split Down. Untuk menutup pemisahan, klik kanan dan pilih Close. Setiap pemisahan memungkinkan Anda menyetel koneksi perangkat, opsi tampilan, dan kuerinya sendiri.

Beberapa jendela Logcat Gambar 2. Memisahkan jendela Logcat di Android Studio.

Dari toolbar Logcat, Anda dapat men-scroll ke akhir log, atau Anda dapat mengklik baris tertentu agar baris tersebut tetap terlihat.

Di Android Studio, Anda dapat membuat penelusuran nilai kunci langsung dari kolom kueri utama. Sistem kueri ini memberikan akurasi kueri yang Anda inginkan dan juga mengecualikan log berdasarkan nilai kunci. Meskipun memiliki opsi untuk menggunakan ekspresi reguler, Anda tidak perlu mengandalkan ekspresi tersebut untuk kueri. Untuk melihat saran, tekan Ctrl + Space di kolom kueri.

Daftar saran di kolom kueri Gambar 3. Tekan Ctrl + Space di kolom kueri untuk melihat daftar kueri yang disarankan.

Berikut adalah beberapa contoh kunci yang dapat Anda gunakan dalam kueri:

  • tag: Mencocokkan kolom tag entri log.
  • package: Mencocokkan nama paket aplikasi logging.
  • process: Mencocokkan nama proses aplikasi logging.
  • message: Mencocokkan bagian pesan dari entri log.
  • level: Mencocokkan level log parah yang ditentukan atau lebih tinggi–misalnya, DEBUG.
  • age: Mencocokkan jika stempel waktu entri terbaru. Nilai ditentukan sebagai angka diikuti dengan huruf yang menentukan satuan waktu: s untuk detik, m untuk menit, h untuk jam, dan d untuk hari. Misalnya, age: 5m hanya memfilter pesan yang dicatat ke dalam log dalam 5 menit terakhir.

Negasi dan ekspresi reguler

Kolom berikut mendukung pencocokan negasi dan ekspresi reguler: tag, package, message, dan line.

Negasi dinyatakan dengan menambahkan - ke nama kolom. Misalnya, -tag:MyTag cocok dengan entri log yang tag-nya tidak berisi string MyTag.

Pencocokan ekspresi reguler dinyatakan dengan menambahkan ~ ke nama kolom. Misalnya, tag~:My.*Tag.

Pengubah negasi dan ekspresi reguler dapat digabungkan. Misalnya, -tag~:My.*Tag.

Operator logika dan tanda kurung

Bahasa kueri mendukung operator AND dan OR yang dinyatakan oleh & dan |, serta tanda kurung. Contoh:

(tag:foo | level:ERROR) & package:mine

Perlu diperhatikan bahwa prioritas operator normal diterapkan, sehingga hal berikut:

tag:foo | level:ERROR & package:mine

Dievaluasi sebagai:

tag:foo | (level:ERROR & package:mine)

Operator logika implisit

Jika operator logika tidak diterapkan, bahasa kueri akan otomatis mengevaluasi beberapa istilah filter key-value yang tidak diabaikan dengan kunci yang sama seperti OR, dan lainnya dengan AND.

Contoh:

tag:foo tag:bar package:myapp

Dievaluasi sebagai:

(tag:foo | tag:bar) & package:myapp

Namun:

tag:foo -tag:bar package:myapp

Dievaluasi sebagai:

tag:foo & -tag:bar & package:myapp

Jika beberapa istilah kueri dipisahkan oleh spasi kosong tanpa operator logika, istilah tersebut diperlakukan sebagai AND dengan prioritas rendah. Misalnya, istilah foo bar tag:bar1 | tag:bar2 setara dengan 'foo bar' & (tag: bar1 | tag: bar2).

Kueri khusus

package:mine

Kunci paket mendukung nilai khusus mine. Nilai khusus ini cocok dengan nama paket apa pun yang berada dalam project terbuka.

level

Kueri level cocok dengan level log pesan Logcat, dengan tingkat entri log lebih besar atau sama dengan level kueri.

Misalnya, level:INFO cocok dengan entri log apa pun dengan level log INFO, WARN, ERROR, atau ASSERT. Level tidak peka huruf besar/kecil. Level yang valid adalah: VERBOSE, DEBUG, INFO, WARN, ERROR, dan ASSERT.

age

Kueri age cocok dengan entri berdasarkan stempel waktunya, dan diformat sebagai age:<number><unit>, dengan

  • <number> adalah bilangan bulat
  • <unit> adalah salah satu dari s, m, h, dan d (detik, menit, jam, dan hari).

Dengan daftar berikut, kueri age cocok dengan pesan log yang memiliki stempel waktu dalam rentang yang dijelaskan oleh nilai. Misalnya: kueri age:5m cocok dengan entri dengan stempel waktu tidak lebih awal dari 5 menit yang lalu.

age:30s
age:5m
age:3h
age:1d

Perhatikan bahwa stempel waktu dibandingkan dengan stempel waktu host, bukan perangkat yang terhubung. Jika waktu perangkat tidak disetel dengan benar, kueri ini mungkin tidak berfungsi seperti yang diharapkan.

kunci is

Anda dapat menggunakan kunci is sebagai berikut:

  • is:crash cocok dengan entri log yang merepresentasikan error aplikasi (baik native maupun Java).
  • is:stacktrace cocok dengan entri log yang mewakili apa pun yang terlihat seperti stack trace Java, terlepas dari level log.

kunci name

Kunci name memungkinkan Anda memberikan nama unik untuk filter tersimpan sehingga dapat diidentifikasi dengan mudah di menu dropdown histori filter. Meskipun error tidak terjadi karena Anda menentukan name lebih dari sekali, IDE hanya menggunakan nilai yang terakhir ditentukan untuk name dalam kueri.

Melihat histori kueri

Anda dapat melihat histori kueri dengan mengklik Show history Ikon filter di samping kolom kueri. Untuk memfavoritkan kueri agar tetap berada di bagian atas daftar di semua project studio Anda, klik bintang di sampingnya. Anda juga dapat menggunakan kunci name: agar kueri favorit lebih mudah dikenali. Untuk mengetahui informasi selengkapnya, lihat Kueri khusus.

UI untuk memfavoritkan kueri

Gambar 4. Favoritkan kueri dengan mengklik bintang di sampingnya.

Melacak log saat aplikasi mengalami error dan dimulai ulang

Saat Logcat melihat bahwa proses aplikasi telah berhenti dan dimulai ulang, Logcat akan menampilkan pesan dalam output, seperti PROCESS ENDED dan PROCESS STARTED. Memulai ulang Logcat akan mempertahankan konfigurasi sesi, seperti pemisahan tab, filter, dan opsi tampilan sehingga Anda dapat melanjutkan sesi dengan mudah.

Jendela Logcat untuk error aplikasi

Gambar 5. Saat proses aplikasi dimulai ulang, Logcat akan mencetak pesan bahwa proses telah berakhir, lalu dimulai.