2011-02-12 42 views
47

Nhấp vào bộ lọc tạo không thể tìm ra từ tài liệu về cách tạo bộ lọc để nói hai hoặc nhiều thẻ. Nếu tôi có hai thẻ com.test.TestClassAcom.test.TestClassB làm cách nào để tạo bộ lọc hiển thị nhật ký cho cả hai lớp này? Tôi thấy làm thế nào bạn có thể bắt đầu ADB cho các thẻ nhất định, nhưng làm thế nào điều này có thể được thực hiện trong nhật thực? Xin vui lòng cung cấp chi tiết nhờ. Chính xác những gì tôi cần phải nhập vào dòng thẻ khi tạo một bộ lọc mới trong nhật thực?Bộ lọc LogCat trên Android cho nhiều thẻ trong Eclipse

Trả lời

1

Cách duy nhất tôi đã xem là Create a Filter using PID để thông báo nhật ký evey của ứng dụng của bạn sẽ được hiển thị trong Bộ lọc đó. Tôi tự hỏi nếu điều này có thể thông qua các tên tag trong phiên bản hiện tại của ADT cho nhật thực.

+1

Tôi cũng rất vui khi biết. Tôi sử dụng PID, một TAG và/hoặc nhiều bộ lọc. Không có metacharacters trong bộ lọc TAG ??? – DJC

9

Vào ngày 12 tháng hai, 02:58, AndroidDevTime đã viết:

Nếu tôi có hai thẻ com.test.TestClassA và com.test .TestClassB làm cách nào để tạo bộ lọc hiển thị nhật ký cho cả hai lớp này?

Các "Log tag" lĩnh vực chấp nhận biểu thức thông thường Java, vì vậy làm điều này:

^com.test.TestClassA $ |^com.test.TestClassB $

mà phù hợp chính xác những thẻ bạn được chỉ định. Bạn có thể tiết kiệm/hiệu quả hơn/bất cứ điều gì với biểu thức chính quy, tùy thuộc vào số tiền bạn muốn muck xung quanh với điều đó.

+0

Tôi thực sự không thể tìm ra cách sử dụng. Nó đơn giản không hoạt động theo chương trình bằng cách sử dụng Runtime.getRuntime(). Exec(); – Shine

27

Trong phiên bản mới nhất của SDK cho Eclipse hiện hiển thị hai phiên bản cho logcat (không được dùng nữa); trong phiên bản không được chấp nhận, người dùng có thể kết hợp các bộ lọc bằng cách sử dụng các thanh OR: |. Ví dụ: khi nhấp vào + và hiển thị hộp thoại để tạo bộ lọc mới, hãy đặt tên cho bộ lọc của bạn và sau đó vào một trong các trường (ví dụ: TAG), hãy nhập com.lampreynetworks|Bluetooth và bạn sẽ thấy đầu ra cho tất cả các thẻ có chứa com.lampreynetworksBluetooth. Các '*' là tiềm ẩn ở đây như thể bất kỳ phần nào của TAG chứa bất kỳ văn bản đó, nó sẽ được hiển thị. Cũng lưu ý, không được có khoảng cách giữa các thanh OR!

Tôi chưa thử kết hợp 'bằng TAG' và 'theo (một số tùy chọn khác)' nhưng bằng cách nào đó tôi có cảm giác rằng không hoạt động.

+5

Không có dấu cách giữa các thanh OR! –

54

pointed bởi Brain Reinhold bạn có thể kết hợp các bộ lọc thẻ với thanh dọc | (điều này rõ ràng có nghĩa là "OR" hợp lý). Bạn cũng có thể sử dụng (cũng như khác Regex) cú pháp trong hộp tìm kiếm logcat (bằng cách đặt trước thẻ với tag: prefix):

tag:com.test.TestClassA|com.test.TestClassB

lọc phức tạp hơn cũng có thể.Ví dụ ở đây là bộ lọc tìm kiếm có hiển thị các tin nhắn từ một trong hai android.process.media hoặc com.android.camera ứng dụng, trong đó có ít nhất một chữ số (\d) trong tin nhắn văn bản và được gắn thẻ với một trong hai dalvikvm hoặc AndroidRuntime tags:

app:android.process.media|com.android.camera tag:dalvikvm|AndroidRuntime text:\d

Screenshot

Một bộ lọc ngắn và hữu ích là tag:^(?!dalvikvm) loại bỏ tất cả các bản ghi Dalvik ồn ào đó. Cũng cần lưu ý rằng bạn có thể nhanh chóng vô hiệu hóa bất kỳ phần nào của bộ lọc bằng cách đặt thanh dọc ở cuối phần bạn muốn vô hiệu hóa (ví dụ: đặt | ngay sau app:android.process.media|com.android.camera trong ví dụ ở trên có hiệu quả vô hiệu hóa lọc theo tên ứng dụng trong khi vẫn duy trì lọc theo thẻ và văn bản).

+1

Việc sử dụng cũng chỉ có thể sử dụng các phần nhỏ của từ để lọc, như 'cam' thay vì' com.android.camera'. Nhưng hãy nhớ, nó có phân biệt chữ hoa chữ thường! Ví dụ. để phát triển Bluetooth, tôi sử dụng 'tag: BT | luetooth | bt | Bt | MyAppTag' – OneWorld

2

Tôi chỉ làm điều đó từ dòng lệnh. Có một thiết bị đầu cuối khác nhau cho mỗi bộ lọc adb. Sau đó, nếu bạn xếp hàng chúng cạnh nhau, bạn có thể có được một ý tưởng tốt về những gì đang xảy ra.

Các vấn đề liên quan