Skip to content

Most visited

Recently visited

navigation

Alat Baris-Perintah logcat

Logcat adalah alat baris-perintah yang mengeluarkan catatan pesan sistem, termasuk pelacakan tumpukan saat perangkat melontarkan kesalahan dan pesan yang Anda tulis dari aplikasi dengan kelas Log.

Laman ini membahas tentang alat logcat baris-perintah, namun Anda juga bisa melihat pesan log dari jendela Logcat di Android Studio. Untuk informasi tentang cara menampilkan dan memfilter log dari Android Studio, lihat Menulis dan Menampilkan Log dengan Logcat.

Sintaks Baris-Perintah

[adb] logcat [<option>] ... [<filter-spec>] ...

Anda bisa menjalankan logcat sebagai perintah adb maupun langsung di prompt shell dari emulator atau perangkat yang terhubung. Untuk menampilkan keluaran log menggunakan adb, arahkan ke direktori platform-tools/ SDK dan jalankan:

$ adb logcat

Anda bisa membuat koneksi shell ke perangkat dan menjalankan:

$ adb shell
# logcat

Opsi

Tabel berikut menjelaskan opsi baris perintah dari logcat.

Opsi Keterangan
-b <buffer> Memuat buffer log alternatif untuk menampilkan, seperti events atau radio. Buffer main digunakan secara default. Lihat Menampilkan Buffer Log Alternatif.
-c Mengosongkan (menyingkirkan) seluruh log dan keluar.
-d Mengeluarkan log ke layar dan keluar.
-f <filename> Mencatat keluaran pesan log ke <filename>. Default-nya adalah stdout.
-g Mencetak sebesar buffer log yang ditetapkan dan keluar.
-n <count> Menyetel jumlah maksimum log yang dirotasi ke <count>. Nilai default-nya adalah 4. Membutuhkan opsi -r.
-r <kbytes> Merotasi file log setiap <kbytes> dari keluaran. Nilai default-nya adalah 16. Membutuhkan opsi -f.
-s Menyetel spesifikasi filter default ke diam.
-v <format> Menyetel format keluaran untuk pesan log. Default-nya berformat brief. Untuk daftar format yang didukung, lihat Mengontrol Format Keluaran Log.

Memulai logcat

Untuk menjalankan logcat, melalui shell ADB, penggunaan secara umum adalah:

[adb] logcat [<option>] ... [<filter-spec>] ...

Anda bisa menggunakan perintah logcat dari komputer development atau dari shell adb jarak jauh dalam instance emulator/perangkat. Untuk menampilkan keluaran log dalam komputer development, Anda menggunakan

$ adb logcat

dan dari shell adb jarak jauh Anda menggunakan

# logcat

Tabel berikut menjelaskan opsi baris perintah logcat:

-c Mengosongkan (menyingkirkan) seluruh log dan keluar.
-d Mengeluarkan log ke layar dan keluar.
-f <filename> Mencatat keluaran pesan log ke <filename>. Default-nya adalah stdout.
-g Mencetak sebesar buffer log yang ditetapkan dan keluar.
-n <count> Menyetel jumlah maksimum log yang dirotasi ke <count>. Nilai default-nya adalah 4. Membutuhkan opsi -r.
-r <kbytes> Merotasi file log setiap <kbytes> dari keluaran. Nilai default-nya adalah 16. Membutuhkan opsi -f.
-s Menyetel spesifikasi filter default ke diam.
-v <format> Menyetel format keluaran untuk pesan log. Default-nya berformat brief. Untuk daftar format yang didukung, lihat Mengontrol Format Keluaran Log.

Memfilter Keluaran Log

Setiap pesan log Android memiliki tag dan prioritas yang terkait dengannya.

Anda bisa memperoleh daftar tag yang digunakan dalam sistem, bersama prioritas, dengan menjalankan logcat dan mengamati dua kolom pertama dari setiap pesan, yang diberikan sebagai <priority>/<tag>.

Berikut ini adalah contoh keluaran logcat yang menunjukkan bahwa pesan tersebut berhubungan dengan tingkat prioritas "I" dan tag "ActivityManager":

I/ActivityManager(  585): Starting activity: Intent { action=android.intent.action...}

Untuk mengurangi keluaran log ke tingkat yang terkendali, Anda bisa membatasi keluaran log menggunakan ekspresi filter. Ekspresi filter memungkinkan Anda menunjukkan kepada sistem kombinasi prioritas-tag yang membuat Anda tertarik — sistem menghalangi pesan lain untuk tag yang ditetapkan.

Ekspresi filter mengikuti format tag:priority ..., dengan tag menunjukkan tag dari ketertarikan dan priority menunjukkan tingkat prioritas laporan minimum untuk tag tersebut. Pesan untuk tag tersebut atau di atas prioritas yang ditetapkan akan ditulis ke log. Anda bisa menyediakan beberapa spesifikasi tag:priority dalam ekspresi filter tunggal. Rangkaian spesifikasi dibatasi oleh spasi.

Berikut ini adalah contoh dari ekspresi filter yang menekan semua pesan log kecuali yang memiliki tag "ActivityManager", pada tingkat prioritas "Info" atau di atasnya, dan semua pesan log dengan tag "MyApp", dengan tingkat prioritas "Debug" atau di atasnya:

adb logcat ActivityManager:I MyApp:D *:S

Elemen terakhir dalam ekspresi di atas, *:S, menetapkan tingkat prioritas untuk semua tag ke "silent", sehingga memastikan hanya pesan log dengan "ActivityManager" dan "MyApp" yang akan ditampilkan. Menggunakan *:S adalah cara terbaik untuk memastikan bahwa keluaran log dibatasi oleh filter yang telah Anda tetapkan secara eksplisit — ini memungkinkan filter Anda berfungsi sebagai "daftar putih" untuk keluaran log.

Ekspresi filter berikut menampilkan semua pesan log dengan tingkat prioritas "warning" dan yang lebih tinggi, pada semua tag:

adb logcat *:W

Jika Anda menjalankan logcat dari komputer development (versus menjalankannya pada shell adb jarak jauh), Anda juga bisa mengatur ekspresi filter default dengan mengekspor nilai untuk variabel lingkungan ANDROID_LOG_TAGS:

export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"

Perhatikan bahwa filter ANDROID_LOG_TAGS tidak diekspor ke instance emulator/perangkat, jika Anda menjalankan logcat dari shell jarak jauh atau menggunakan adb shell logcat.

Mengontrol Format Keluaran Log

Pesan log berisi sejumlah bidang metadata, selain tag dan prioritas. Anda bisa mengubah format keluaran pesan sehingga mereka menampilkan bidang metadata tertentu. Untuk melakukannya, Anda menggunakan opsi -v dan menetapkan salah satu format keluaran didukung yang tercantum di bawah ini.

Ketika memulai logcat, Anda bisa menentukan format keluaran yang Anda inginkan dengan menggunakan opsi -v:

[adb] logcat [-v <format>]

Berikut adalah contoh yang menunjukkan cara menghasilkan pesan dalam format keluaran thread:

adb logcat -v thread

Perhatikan bahwa Anda hanya bisa menentukan satu format keluaran dengan opsi -v.

Menampilkan Buffer Log Alternatif

Sistem pembuatan log Android menyimpan beberapa buffer melingkar untuk pesan log, dan tidak semua pesan log dikirim ke buffer melingkar default. Untuk melihat pesan log tambahan, Anda bisa menjalankan perintah logcat dengan opsi -b, untuk membuat permintaan menampilkan buffer melingkar alternatif. Anda bisa menampilkan semua buffer melingkar alternatif ini:

Penggunaan dari opsi -b adalah:

[adb] logcat [-b <buffer>]

Berikut ini adalah contoh cara menampilkan buffer log yang berisi pesan telepon dan radio:

adb logcat -b radio

Melihat stdout dan stderr

Secara default, sistem Android mengirimkan keluaran stdout dan stderr (System.out dan System.err) ke /dev/null. Dalam proses yang menjalankan Dalvik VM, Anda bisa meminta sistem untuk menulis salinan keluaran ke file log. Dalam kejadian ini, sistem menulis pesan ke log menggunakan tag log stdout dan stderr, keduanya dengan prioritas I.

Untuk mengarahkan keluaran dengan cara ini, Anda menghentikan instance emulator/perangkat yang berjalan dan kemudian menggunakan perintah shell setprop untuk mengaktifkan pengalihan keluaran. Begini cara melakukannya:

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start

Sistem mempertahankan setelan ini sampai Anda mengakhiri instance emulator/perangkat. Untuk menggunakan setelan sebagai setelan default pada instance emulator/perangkat, Anda bisa menambahkan entri untuk /data/local.prop pada perangkat.

Membuat log dari Kode

Kelas Log memungkinkan Anda untuk membuat entri log dalam kode yang ditampilkan dalam alat logcat. Metode pembuatan log biasanya meliputi:

Misalnya, menggunakan panggilan berikut:

Log.i("MyActivity", "MyClass.getView() — get item number " + position);

Keluaran logcat akan menjadi seperti:

I/MyActivity( 1557): MyClass.getView() — get item number 1
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)