Làm cách nào tôi có thể xem và kiểm tra nhật ký Android?


109

Có rất nhiều thứ thú vị trong nhật ký hệ thống Android, rất hữu ích theo nhiều cách

  • tìm nguyên nhân gốc rễ của vấn đề
  • xác định các ứng dụng hoạt động sai

Làm cách nào tôi có thể xem và kiểm tra nhật ký Android?


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Matthew Đọc

Câu trả lời:


59

Android 4.1 trở lên

Cách ưa thích là tải xuống SDK và sử dụng adb logcat(yêu cầu kích hoạt "tùy chọn nhà phát triển" trên thiết bị).

Có những ứng dụng có sẵn để xem nhật ký hệ thống đầy đủ, tuy nhiên chúng chỉ hoạt động trên các thiết bị đã root hoặc yêu cầu ban hành lệnh thủ công thông qua adbđể làm cho chúng hoạt động. Để biết thêm thông tin xem xem câu hỏi này.

Android 4.0 trở lên

Bạn có thể tải xuống SDK và sử dụng adb logcathoặc nhận Logcat Extrem từ Cửa hàng Google Play, nơi hiển thị nhật ký trực tiếp trên điện thoại của bạn.


2
Ngoài ra, bạn có thể sử dụng Trình mô phỏng đầu cuối với lệnh "logcat> /sdcard/log.txt" để ghi nhật ký liên tục vào một tệp trên Thẻ SD. Điều này có thể giúp tìm ra các vấn đề với khởi động lại ngẫu nhiên.
Chahk

Điểm tốt. Một số điện thoại có xu hướng spam nhật ký đầy thông tin tầm thường, vì vậy nếu bạn muốn giảm thiểu kích thước tệp và dữ liệu, hãy xem phần "Lọc đầu ra nhật ký" trên developer.android.com/guide/developing/tools/adb.html #logcat
onik

Ứng dụng LogCat không hoạt động bất kỳ với JellyBean. Google đã thay đổi API Android, các ứng dụng không còn được phép đọc nhật ký từ các ứng dụng khác ngoài ứng dụng của chúng.
Leandros

Tôi đã tạo một tiện ích đơn giản để thu thập nhật ký từ PC: gist.github.com/hrj/5983971
HRJ

Logcat Extreme là ứng dụng tuyệt vời để xem nhật ký
Arpit Patel

57

Vị trí tệp nhật ký

Có một số thư mục nơi các bản ghi (bao gồm cả các thư mục từ sự cố) có thể xuất hiện - không phải tất cả chúng đều được chuẩn hóa (tức là một số có thể là ROM cụ thể).

  • /data/anr: Một số tệp theo dõi dường như xuất hiện ở đây (Dalvik viết dấu vết ngăn xếp ở đây trên ANR, tức là "Ứng dụng không phản hồi" hay còn gọi là "Buộc đóng"; xem ví dụ: trích đoạn nhật ký tại đây )
  • /data/dontpanicdường như là một vị trí tiêu chuẩn (AOSP) và chứa một số nhật ký sự cố bao gồm cả dấu vết (xem ví dụ: viaForensicsStackOverflow )
  • /data/kernelpanics là một vị trí khác - chưa có bất kỳ "hoảng loạn hạt nhân" nào trên các thiết bị Android của tôi, tôi chưa thấy nội dung nào ở đó.
  • các /data/panic/panic_daemon.configđiểm tháng đến các địa điểm khác cấu hình - trên Droid của tôi 2 nó đề cập đến/sdcard/panic_data/
  • đề cập đến Droid 2 cũng có một /data/panicreportsthư mục (trống ở đây)
  • /data/tombstonescó thể giữ một số tombstone_nntệp (với nndạng nối tiếp, tăng với mỗi tệp mới). Vì bia mộ được đặt cho người chết, nên nó được thực hiện ở đây cho "các quá trình chết do tai nạn" (nghĩa là bị rơi) - và đó là cái được gọi là "bãi rác lõi" trên các hệ thống Linux / Unix. Tuy nhiên, không phải tất cả các ứng dụng đều tạo ra bia mộ; điều này phải được nhà phát triển kích hoạt rõ ràng (xem Gỡ lỗi Android Core Dumps ).

Có thể có thêm một số địa điểm đã trốn thoát tôi; nhưng vì hầu hết việc ghi nhật ký được thực hiện tmpfs, những dữ liệu này bị mất khi khởi động lại và sẽ không khớp với câu hỏi của OP.

Đăng nhập các lệnh để sử dụng với một ứng dụng đầu cuối (hoặc adb)

Một số lệnh có thể giúp bạn có hàng tấn thông tin. Đối với hầu hết trong số họ, chúng tôi khuyên bạn nên chuyển hướng chúng đến một tệp ( > filename.ext) hoặc dẫn chúng qua bộ lọc ( | grep search-for-this):

Nhật ký hạt nhân

Các công việc sau đây không có 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

Ở đây bạn có thể ví dụ xác định khu vực bạn quan tâm - radio, sự kiện ...

# 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>

Lấy thông tin thiết bị

Và hàng tấn của nó: Thông tin cụ thể về thiết bị, thông tin tài khoản, dịch vụ ...

$ 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>

Tất cả hợp lại thành một

Tạo một quả bóng lớn với mọi thứ cùng nhau, từ logcat đến dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt

Tôi khá chắc chắn rằng bạn thực sự muốn chuyển hướng lệnh cuối cùng đó ... xD

Đôi điều về quyền

PS: Đương nhiên, truy cập vào những thông tin đó có thể yêu cầu root, vì hầu hết các nguồn được đặt trên bộ nhớ trong.


Để có thêm một số hiểu biết sâu sắc về các lệnh logcat adb xem tại đây .
thử nghiệm

Hoặc chỉ cần kiểm tra thẻ đăng nhập-wiki @testing của chúng tôi - có nhiều tài liệu tham khảo hơn :)
Izzy

Liên kết cho "Gỡ lỗi Android Core Dumps" đã chết, chúng ta có thể có một giải pháp thay thế không?
Spidey

1
@Spidey luôn có Archive.ORG cho loại vấn đề này (liên kết đến một bản sao hoạt động ở đó).
Izzy

12

Một phát hiện rằng CatLog hiển thị nhật ký Android tốt hơn một chút sau đó là aLogcat. Ngoài ra adb logcat, đó là những gì tôi đang sử dụng.


Xem bình luận của tôi ở trên, liên quan đến các ứng dụng LogCat.
Leandros

2
Tôi đã cập nhật câu hỏi. Xin lưu ý rằng thông tin vị trí tương đối (ví dụ "ở trên") có thể dễ dàng bị lỗi thời, vì thứ tự các câu trả lời có thể thay đổi theo thời gian.
Lưu lượng

3

Một phương thức không có root, hoạt động ngay cả với các phiên bản Android mới:

Điều kiện tiên quyết:

  • Linux, Windows hoặc Mac
  • Cáp USB cho thiết bị của bạn
  • Thiết bị Android

Hướng dẫn:

  1. Cài đặt trình điều khiển thiết bị của bạn để sử dụng adb. Mọi thứ bạn cần bạn sẽ tìm thấy ở đây
  2. Tải xuống adb thực thi cho hệ điều hành của bạn. Nó là một phần của SDK Android, nhưng bạn có thể tìm thấy adb thực thi riêng lẻ.
  3. Kết nối thiết bị Android của bạn.
  4. Cho phép các tùy chọn nhà phát triển .
  5. Cho phép gỡ lỗi USB.
  6. Mở một lệnh promt (windows) hoặc terminal (linux / mac). Cách thực hiện: Trên Windows: windows + r> enter "cmd" (không có dấu ngoặc kép)> bấm enter | Trên Linux: Bạn không biết cách mở terminal? LOL | Trên máy Mac: Nhập Terminalvào Spotlight và mở nó
  7. CD vào thư mục nơi thực thi adb được đặt. Trên Windows: Chuyển đến thư mục bạn đã tải xuống tệp thực thi adb, Shift + Nhấp chuột phải và chọn "Mở Bảng điều khiển" (hoặc tương tự) | Trên Linux / Mac: Rightclick trong thư mục và chọn "Open Terminal here" (hoặc đơn giản là CD vào thư mục)
  8. Nhập cmd / terminal của bạn: adb devicesđể xác minh thiết bị của bạn được kết nối đúng cách.
  9. Nếu thiết bị của bạn được chọn đúng, hãy nhập adb logcatđể hiển thị logcat vĩ đại và ma thuật hay còn gọi là stacktrace.
  10. Tái tạo lỗi của bạn (hoặc bất cứ điều gì) trên thiết bị của bạn.
  11. Ngay sau đó, dán toàn bộ cửa sổ cmd / terminal vào dịch vụ dán như http://pastebin.com/ và gửi cho chúng tôi.

(Chủ yếu được sao chép từ Leandros )


2

Ứng dụng miễn phí SysInfo ( Trang dự án ) sẽ hiển thị nhật ký hệ thống cũng như nén một báo cáo hệ thống hoàn chỉnh để gửi qua email, dropbox, NFC, v.v. Không đề cập đến nhiều thông tin hệ thống thú vị khác.


(Yup, tôi sắp trễ một năm rồi, nhưng cái này cần được nhắc đến).
JRobert

Cả hai liên kết đều bị hỏng.
jk7 ngày

Liên kết thứ hai (trang dự án) vẫn hoạt động với tôi nhưng các mục cuối cùng trong đó là từ năm 2010. Android thay đổi đôi khi đã phá vỡ nhiều chức năng của Sysinfo.
JRobert

-1

Nó nằm ở /sdcard/bugreports.


3
Tôi chưa bao giờ có một thư mục như vậy trên điện thoại của mình ... điều này có cụ thể với nhà sản xuất hoặc thiết bị không?
Matthew Đọc

2
Từ Logcat - CyanogenMod Wiki : Bạn có thể sử dụng tổ hợp phím ma thuật để tạo tệp bugreport trong / sdcard / bugreports. Vì vậy, đây có vẻ là một) một chút cụ thể (có thể là CM) và b) không phải là câu trả lời cho câu hỏi, vì OP tìm kiếm những câu hỏi "được tạo tự động".
Izzy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.