Các phương pháp khác nhau là chỉ dẫn ưu tiên. Như bạn đã liệt kê chúng, chúng sẽ đi từ ít nhất đến quan trọng nhất. Tôi nghĩ cách bạn ánh xạ cụ thể chúng để gỡ lỗi nhật ký trong mã của bạn tùy thuộc vào thành phần hoặc ứng dụng bạn đang làm việc, cũng như cách Android xử lý chúng trên các hương vị xây dựng khác nhau (eng, userdebug và user). Tôi đã thực hiện một số lượng công việc khá lớn trong các trình tiện ích gốc trong Android và đây là cách tôi thực hiện. Nó có thể không áp dụng trực tiếp cho ứng dụng của bạn, nhưng có thể có một số điểm chung. Nếu lời giải thích của tôi nghe có vẻ mơ hồ, thì đó là vì một số điều này là một nghệ thuật hơn là một khoa học. Quy tắc cơ bản của tôi là hiệu quả nhất có thể, đảm bảo bạn có thể gỡ lỗi hợp lý thành phần của mình mà không làm giảm hiệu suất của hệ thống và luôn kiểm tra lỗi và ghi nhật ký.
V - Bản in trạng thái tại các khoảng thời gian khác nhau hoặc theo bất kỳ sự kiện nào xảy ra mà thành phần của tôi xử lý. Cũng có thể bản in rất chi tiết về tải trọng của tin nhắn / sự kiện mà thành phần của tôi nhận hoặc gửi.
D - Chi tiết về các sự kiện nhỏ xảy ra trong thành phần của tôi, cũng như tải trọng của tin nhắn / sự kiện mà thành phần của tôi nhận hoặc gửi.
I - Tiêu đề của bất kỳ tin nhắn / sự kiện nào mà thành phần của tôi nhận hoặc gửi, cũng như bất kỳ phần quan trọng nào của tải trọng quan trọng đối với hoạt động của thành phần của tôi.
W - Bất cứ điều gì xảy ra bất thường hoặc đáng ngờ, nhưng không nhất thiết là một lỗi.
E - Lỗi, nghĩa là những điều không nên xảy ra khi mọi thứ đang hoạt động như bình thường.
Sai lầm lớn nhất tôi thấy mọi người mắc phải là họ lạm dụng những thứ như V, D và tôi, nhưng không bao giờ sử dụng W hoặc E. Nếu theo một định nghĩa, lỗi không được phép xảy ra hoặc chỉ xảy ra rất hiếm khi xảy ra, thì nó cực kỳ hiếm giá rẻ cho bạn để đăng nhập một tin nhắn khi nó xảy ra. Mặt khác, nếu mỗi lần ai đó nhấn phím bạn thực hiện Log.i (), bạn đang lạm dụng tài nguyên ghi nhật ký được chia sẻ. Tất nhiên, sử dụng thông thường và cẩn thận với nhật ký lỗi cho những thứ nằm ngoài tầm kiểm soát của bạn (như lỗi mạng) hoặc những lỗi chứa trong các vòng lặp chặt chẽ.
Có lẽ xấu
Log.i("I am here");
Tốt
Log.e("I shouldn't be here");
Với tất cả những điều này, mã của bạn càng gần "sẵn sàng sản xuất", bạn càng có thể hạn chế mức ghi nhật ký cơ sở cho mã của mình (bạn cần V in alpha, D trong beta, I trong sản xuất hoặc thậm chí là W trong sản xuất ). Bạn nên chạy qua một số trường hợp sử dụng đơn giản và xem nhật ký để đảm bảo rằng bạn vẫn có thể hiểu được những gì đang xảy ra khi bạn áp dụng bộ lọc hạn chế hơn. Nếu bạn chạy với bộ lọc bên dưới, bạn vẫn có thể biết ứng dụng của mình đang làm gì, nhưng có thể không nhận được tất cả các chi tiết.
logcat -v threadtime MyApp:I *:S
Verbose
đăng nhập. Đó là những gì bạn sử dụng khi bạn muốn xuất ra mọi hoạt động logic có thể.