Lọc đầu ra trong logcat theo tagname


151

Tôi đang cố gắng lọc đầu ra logcat từ một thiết bị thực (không phải trình giả lập) theo tên thẻ nhưng tôi nhận được tất cả các tin nhắn khá là spam. Tôi chỉ muốn đọc các tin nhắn từ trình duyệt nên giống như "trình duyệt: " hoặc "webkit: ", nhưng nó không hoạt động ... Đây là những gì tôi nhận được:

sản lượng thực tế

Câu trả lời:


294

dùng cái này:

adb logcat -s "TAGNAME"

7
Cảm ơn bạn! Ở trên tương đương với logb adb *: s 'tagname'
munch

3
Làm cách nào tôi có thể lọc OUT <tagname>?
Arunabh Das

Tôi tin rằng cách duy nhất để lọc ra là theo cấp độ. Ví dụ: nếu một số ứng dụng đang spam Debug thì hãy đặt mức logcat thành chỉ hiển thị Thông tin và các cấp cao hơn: logcat *: Tôi
Ai đó ở đâu đó vào

1
Có thể sử dụng ở trên với tên tệp -f? Giả sử, kịch bản của tôi là lọc các bản ghi bằng TagName và kết xuất thành tệp văn bản.
tinh xanh

9
Das - "adb logcat TAGNAME: s" sẽ tạo ra một thẻ ồn ào.
Công viên Don

56

Trong trường hợp ai đó vấp phải điều này giống như tôi đã làm, bạn có thể lọc trên nhiều thẻ bằng cách thêm dấu phẩy ở giữa, như vậy:

adb logcat -s "browser","webkit"

Giải thích nơi tôi nên đặt mã này. Tôi là một con ong mới. Hãy giải thích
Zar E Ahmer

1
@Nepster Nhập vào thiết bị đầu cuối.
async

Nếu bạn sử dụng cygwin trên windows, bạn có thể sử dụng grep ... và vâng, điều này hoạt động.
sgupta

12

Một tùy chọn khác là thiết lập các mức nhật ký cho các thẻ cụ thể:

adb logcat SensorService: S PowerManagerService: S NfcService: S power: I Sensors: E

Nếu bạn chỉ muốn đặt cấp độ nhật ký cho một số thẻ, bạn có thể thực hiện trên thẻ theo cơ sở thẻ.


9

Không phụ thuộc vào trình bao ADB, chỉ cần xử lý nó (logcat adb) một đầu ra linux bình thường và sau đó pip nó:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
Đây là một lựa chọn tồi vì rất nhiều lưu lượng không cần thiết được gửi và bộ lọc rõ ràng sẽ không hoạt động. Nếu một quá trình không liên quan ghi nhật ký thông báo xảy ra có một chuỗi trong đó sẽ xuất hiện.
John Smith

and the filter obviously won't workbạn đã thử chưa Tôi có, và dán câu trả lời của tôi theo kết quả.
Siwei Shen

1
Câu hỏi là dành cho windows, nơi grep không có sẵn
sroskelley

1
Nếu bạn sử dụng cygwin trên windows, bạn có thể sử dụng grep ... và vâng, điều này hoạt động.
sgupta

6

Đây là cách tôi tạo một thẻ:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

Bạn có thể sử dụng getCannonicalName

Ở đây tôi có các bộ lọc TAG sau:

  • bất kỳ (*) Xem - ĐỘNG TỪ
  • bất kỳ (*) Hoạt động - ĐỘNG TỪ
  • bất kỳ thẻ nào bắt đầu bằng Xyz (*) - LRI
  • System.out - SILENT (vì tôi đang sử dụng Đăng nhập bằng mã của riêng mình)

Đây là những gì tôi gõ trong thiết bị đầu cuối:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
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.