Bagaimana saya bisa melihat dan memeriksa log Android?


109

Ada banyak hal menarik dalam log sistem Android, yang sangat membantu dalam banyak hal

  • temukan akar penyebab masalah
  • mengidentifikasi aplikasi yang tidak pantas

Bagaimana saya bisa melihat dan memeriksa log Android?


Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
Matius Baca

Jawaban:


59

Android 4.1 dan yang lebih baru

Cara yang disukai adalah mengunduh SDK dan menggunakan adb logcat(mengharuskan untuk mengaktifkan "opsi pengembang" pada perangkat).

Ada aplikasi yang tersedia untuk melihat log sistem lengkap, namun mereka hanya bekerja pada perangkat yang di-rooting atau memerlukan mengeluarkan perintah manual adbuntuk membuatnya bekerja. Untuk informasi lebih lanjut, lihat pertanyaan ini.

Android 4.0 dan lebih lama

Anda dapat mengunduh SDK dan menggunakan adb logcatatau mendapatkan Logcat Extrem dari Google Play Store, yang menunjukkan log secara langsung di ponsel Anda.


2
Atau, Anda dapat menggunakan Terminal Emulator dengan perintah "logcat> /sdcard/log.txt" untuk penulisan log yang berkesinambungan ke file di SD Card. Ini dapat membantu memecahkan masalah dengan reboot acak.
Chahk

Poin bagus. Beberapa ponsel cenderung untuk meng-spam log yang penuh dengan informasi sepele, jadi jika Anda ingin meminimalkan ukuran file dan data untuk memeriksa bagian "Menyaring Keluaran Log" pada developer.android.com/guide/developing/tools/adb.html #logcat
onik

Aplikasi LogCat tidak berfungsi dengan JellyBean. Google mengubah API Android, aplikasi tidak lagi memiliki izin untuk membaca log dari aplikasi lain.
Leandros

Saya telah membuat sebuah utilitas sederhana untuk mengumpulkan log dari PC: gist.github.com/hrj/5983971
HRJ

Logcat Extreme adalah aplikasi yang bagus untuk melihat log
Arpit Patel

57

Lokasi File-Log

Ada beberapa direktori di mana log (termasuk yang dari crash) mungkin muncul - tidak semua dari mereka distandarisasi (yaitu beberapa mungkin khusus ROM).

  • /data/anr: Beberapa file jejak tampaknya ada di sini (Dalvik menulis tumpukan jejak di sini di PPA, yaitu "Aplikasi Tidak Menanggapi" alias "Tutup paksa"; lihat misalnya kutipan log di sini )
  • /data/dontpanictampaknya menjadi lokasi standar (AOSP), dan berisi beberapa log kerusakan termasuk jejak (lihat misalnya viaForensics dan StackOverflow )
  • /data/kernelpanics adalah lokasi lain - belum memiliki "kernel panic" di perangkat Android saya, saya belum melihat konten di sana.
  • yang /data/panic/panic_daemon.configMei arahkan ke lokasi lain dikonfigurasi - pada Droid saya 2 itu menyebutkan/sdcard/panic_data/
  • disebutkan Droid 2 juga memiliki /data/panicreportsdirektori (kosong di sini)
  • /data/tombstonesdapat menyimpan beberapa tombstone_nnfile (dengan nnmenjadi serial, meningkat setiap file baru). Ketika batu nisan ditempatkan untuk orang mati, hal itu dilakukan di sini untuk "proses mati karena kecelakaan" (yaitu crash) - dan inilah yang disebut sebagai "core dumps" pada sistem Linux / Unix. Namun, tidak semua aplikasi membuat batu nisan; ini harus diaktifkan secara eksplisit oleh pengembang (lihat Debugging Android Core Dumps ).

Mungkin ada beberapa lokasi lagi yang luput dari saya; tetapi karena sebagian besar logging dilakukan tmpfs, data ini hilang dengan reboot, dan tidak akan cocok dengan pertanyaan OPs.

Log perintah untuk digunakan dengan aplikasi terminal (atau adb)

Beberapa perintah dapat memberi Anda banyak informasi. Untuk sebagian besar dari mereka, itu direkomendasikan untuk mengarahkan mereka kembali ke file ( > filename.ext) atau pipa mereka melalui filter ( | grep search-for-this):

Log kernel

Berikut ini berfungsi tanpa root:

$ dmesg
<6>[82839.126586] PM: Syncing filesystems ... done.
<7>[82839.189056] PM: Preparing system for mem sleep
<4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done.
<4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<snip>

Logcat

Di sini Anda dapat, misalnya, menentukan bidang apa yang Anda minati - radio, acara ...

# logcat -b events
I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721]
I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721]
I/notification_cancel( 3457): [nitro.phonestats,4,0] 
<snip>

Mendapatkan info perangkat

Dan banyak dari itu: Khusus perangkat, informasi akun, layanan ...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {name=xxxxxxx@googlemail.com, type=com.google}
<snip> 

$ dumpstate
========================================================
== dumpstate: 2012-08-18 23:39:53
========================================================

Build: Gingerbread GWK74 - CyanogenMilestone2
Bootloader: 0x0000
Radio: unknown 
<snip>
------ MEMORY INFO (/proc/meminfo) ------
MemTotal: 487344 kB
MemFree: 10436 kB 
<snip>

Semua dalam satu

Buat bola besar dengan semuanya bersama-sama, dari logcat ke dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt

Saya cukup yakin Anda benar-benar ingin mengarahkan ulang perintah terakhir itu ... xD

Sesuatu tentang izin

PS: Secara alami, akses ke informasi itu mungkin memerlukan root, karena sebagian besar sumber berada di penyimpanan internal.


Untuk mendapatkan lebih banyak wawasan tentang perintah adb logcat lihat di sini .
pengujian

Atau cukup periksa logging tag-wiki @testing kami - yang memiliki lebih banyak referensi :)
Izzy

Tautan untuk "Debugging Android Core Dumps" sudah mati, bisakah kita mendapatkan alternatif?
Spidey

1
@Spidey selalu ada Archive.ORG untuk masalah seperti ini (tautan menuju salinan yang berfungsi di sana).
Izzy

12

Ditemukan bahwa CatLog menampilkan log Android sedikit lebih baik daripada LogLat. Selain itu adb logcat, itulah yang saya gunakan.


Lihat komentar saya di atas, mengenai aplikasi LogCat.
Leandros

2
Saya telah memperbarui pertanyaan. Harap dicatat bahwa informasi posisi relatif (misalnya "di atas") dapat dengan mudah menjadi usang, karena urutan jawaban dapat berubah seiring waktu.
Alur

3

Metode tanpa root, yang berfungsi bahkan dengan versi Android baru:

Prasyarat:

  • Linux, Windows atau Mac
  • Kabel USB untuk perangkat Anda
  • Perangkat Android

Instruksi:

  1. Instal driver perangkat Anda untuk menggunakan adb. Semua yang Anda butuhkan akan Anda temukan di sini
  2. Unduh adb yang dapat dieksekusi untuk OS Anda. Ini adalah bagian dari SDK Android, tetapi Anda mungkin dapat menemukan adb dapat dieksekusi secara terpisah.
  3. Hubungkan perangkat android Anda.
  4. Aktifkan opsi pengembang .
  5. Aktifkan USB debugging.
  6. Buka promt perintah (windows) atau terminal (linux / mac). Cara melakukannya: Di Windows: windows + r> masukkan "cmd" (tanpa tanda kutip)> klik enter | Di Linux: Anda tidak tahu cara membuka terminal? LOL | Di Mac: Ketik TerminalSpotlight dan buka
  7. CD ke direktori tempat adb executable berada. Di Windows: Buka direktori tempat Anda mengunduh adb executable, Shift + Klik Kanan dan pilih "Open Console" (atau yang serupa) | Di Linux / Mac: Klik kanan di direktori dan pilih "Open Terminal here" (atau cukup masukkan CD ke direktori)
  8. Ketikkan cmd / terminal Anda: adb devicesuntuk memverifikasi perangkat Anda terhubung dengan benar.
  9. Jika perangkat Anda dipilih dengan benar, ketik adb logcatuntuk menampilkan logtrat alias perkasa dan stacktrace.
  10. Reproduksi kesalahan Anda (atau apa pun) di perangkat Anda.
  11. Segera setelah itu, rekatkan seluruh jendela cmd / terminal ke dalam layanan pasta seperti http://pastebin.com/ dan kirimkan kepada kami.

(Sebagian besar disalin dari Leandros )


2

Aplikasi SysInfo ( Halaman Proyek ) gratis akan menampilkan log sistem dan juga zip laporan sistem lengkap untuk dikirim melalui email, dropbox, NFC, dll. Belum lagi banyak informasi sistem menarik lainnya.


(Yup, aku hampir terlambat satu tahun, tapi yang ini perlu disebutkan).
JRobert

Kedua tautan rusak sekarang.
jk7

Tautan kedua (halaman proyek) masih berfungsi untuk saya tetapi entri terakhir di dalamnya berasal dari 2010. Android berubah sejak saat itu telah merusak banyak fungsi Sysinfo.
JRobert

-1

Itu terletak di /sdcard/bugreports.


3
Saya tidak pernah memiliki folder seperti itu di ponsel saya ... apakah ini khusus untuk produsen atau perangkat?
Matius Baca

2
Dari Logcat - CyanogenMod Wiki : Anda dapat menggunakan kombinasi tombol ajaib untuk membuat file bugreport di / sdcard / bugreports. Jadi ini tampaknya a) agak spesifik (mungkin untuk CM), dan b) bukan jawaban atas pertanyaan, karena OP mencari yang "dibuat secara otomatis".
Izzy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.