Làm cách nào để lọc logcat trong Android Studio?


96

Trong logcat của tôi có quá nhiều đầu ra, vì vậy tôi muốn lọc nó bằng một số từ khóa, về cơ bản chỉ hiển thị đầu ra có chứa (các) từ khóa. Có cách nào để làm điều đó trong Android Studio thông qua giao diện người dùng không?



không, tôi đang hỏi cách lọc tin nhắn theo từ khóa.
Alessandro Roaro

như từ android studio ver 0.4.5, bạn sẽ nhận được tin nhắn từ ứng dụng chỉ đang chạy. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

Câu trả lời:


107

Có hai cách để thực hiện việc này, cả hai đều nằm trong tab Android ở cuối IDE (nơi hiển thị đầu ra logcat).

Đầu tiên, bạn có thể chỉ cần nhập một cái gì đó vào hộp tìm kiếm ở trên cùng và nó sẽ chỉ lọc các thư có chứa văn bản bạn nhập.

Thứ hai, bạn có thể thực hiện lọc nâng cao bằng cách nhấp vào menu thả xuống ở trên cùng bên phải, theo mặc định sẽ hiển thị Không có Bộ lọc và chọn Edit Filter Configurationvà chỉ định những gì cần lọc. Sử dụng phương pháp này, bạn cũng lưu các bộ lọc và có thể sử dụng lại chúng bằng cách chọn chúng trong menu thả xuống.

Ảnh chụp màn hình:
Tìm kiếm & Lọc Logcat


1
Cảm ơn câu trả lời của bạn. Tôi đã thử cái đầu tiên, nhưng nó không lọc ra đầu ra không liên quan. Re: tùy chọn thứ hai, rất tiếc, tôi không thể thấy menu thả xuống, bạn đang sử dụng phiên bản nào?
Alessandro Roaro

1
Tôi đang sử dụng v0.3.5 ... đã thêm ảnh chụp màn hình của nó vào câu trả lời.
free3dom

1
Tôi chỉ nhận thấy điều này khi thực hiện ảnh chụp màn hình, có một cách khác để lọc. Trên trái bên (ngay bên cạnh các tab) là một biểu tượng với mũi tên màu xanh lá cây - nó có thể được bật / tắt để chỉ hiển thị logcat từ quá trình lựa chọn trong danh sách :)
free3dom

Cảm ơn bạn, tôi đã không có những bộ lọc trong phiên bản của tôi (0.3.2)
Alessandro Roaro

Không vấn đề gì! Tôi cho rằng nó đã được thêm vào v0.3.3 / 4 sau đó. Android Studio là nhận được tốt hơn với mỗi phiên bản :)
free3dom

81

Những gì tôi làm là nhấp chuột phải vào dòng tôi không thích và chọn "Gấp dòng như thế này"nhập mô tả hình ảnh ở đây


9
Woa thật tuyệt!! Ước gì tôi biết điều này sớm hơn!
miva2

7
Đây nên là câu trả lời.
gladed

2
Chỉ điều này giải quyết lũ lụt của tôi bằng genymotion trên Android Studio logcat, cảm ơn.
Florida

3
Ngạc nhiên là tôi chưa từng nhận thấy điều này trước đây. Tốt tìm thấy!
dm78

1
ok đã nhận nó :-D (chỉ cần nhấp đúp vào entry màu xanh với văn bản: "n cuộc gọi nội bộ")
Aydin K.

53

Như @ free3dom đã nói, bạn có thể chọn quy trình mà bạn muốn nhận logcats. Đây là ảnh chụp màn hình.

Chụp màn hình


2
Cảm ơn vì đã thêm điều này. Đó là tốt để có nó ở đây cho mọi người và tôi chỉ đề cập đến nó trong các ý kiến :)
free3dom

39
Đồ họa đẹp quá ;-)
Gerard

1
như từ android studio ver 0.4.5 u sẽ nhận được tin nhắn từ ứng dụng chỉ đang chạy. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

1
1 cho thre báo này trên 'Chỉ hiển thị các bản ghi từ quá trình chọn'
lujop

Tôi có một vấn đề khác, khi tôi áp dụng bộ lọc từ cấu hình bộ lọc, cho một gói cụ thể, logcat trở nên trống.
Bhupesh

17

TÔI LÀM MỘT VIDEO HƯỚNG DẪN ĐỂ CHO BẠN BIẾT CÁCH = https://youtu.be/xw2qE5ko_9I

Đặt tên cho nhật ký của bạn. Tôi gọi tôi là "wawa".

nhập mô tả hình ảnh ở đây

Trong Android Studio, chuyển đến Android-> Chỉnh sửa cấu hình bộ lọc

nhập mô tả hình ảnh ở đây

Sau đó, nhập tên bạn đã cung cấp cho các bản ghi. Trong trường hợp của tôi, nó được gọi là "wawa". Dưới đây là một số ví dụ về các loại bộ lọc bạn có thể làm. Bạn có thể lọc theo System.out, System.err, Logs hoặc tên gói:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây


2
Có regex để phủ định điều này, để ẩn các nhật ký có chứa một dòng không?
Hugo M. Zuleta

Không phải là tôi biết. Nếu bạn muốn sử dụng regex, tôi nghĩ cách tốt nhất là đăng nhập vào hệ điều hành Android và sử dụng Grep trên Bash Terminal.
Gene

^ (?! chromium) (?! WebViewFactory) (?! zygote) .... thêm các thẻ như thế này mà bạn muốn ẩn như (?! TAG_NAME). Ví dụ: nếu bạn muốn sử dụng regex cho một thẻ. bạn muốn ẩn tất cả các thẻ bắt đầu bằng "asd", sau đó bạn thêm (?! (^ asd)) vào "danh sách" các thẻ này.
Drusantia

11

Đầu tiên khai báo tên TAG của bạn trong mã của bạn, ví dụ:

private static final String TAG = "MainTagName";

Sau đó, thêm các câu lệnh nhật ký mà bạn muốn xuất một thứ gì đó

Log.d(TAG, "Activity created");

Theo free3dom trong bài đăng thứ hai, trên tab logcat, hãy nhấp vào menu thả xuống Bộ lọc và sau đó Chỉnh sửa cấu hình bộ lọc.

Trong ví dụ này, chúng tôi đang sử dụng tùy chọn Thẻ ghi nhật ký (regex) để hiển thị thông báo nhật ký cho bất kỳ tên nào trong ba tên thẻ phù hợp bằng cách sử dụng đường dẫn | dấu phân cách (không có dấu cách):

MainTagName|SomeTagName|SomeOtherTagName

2
Tôi không nhận được bất kỳ đầu ra logcat nào khi sử dụng | để tách hai thẻ (Android Studio 1.2)
Ai đó ở đâu đó

2
@SomeoneSomewhere Đảm bảo rằng tên TAG của bạn khớp với tham số đầu tiên trong câu lệnh Nhật ký. Đảm bảo không có khoảng trắng giữa các tên thẻ và đường dẫn, ví dụ: tag1 | tag2. Đảm bảo rằng trên thực tế bạn đang nhấn lệnh thẻ bằng cách gỡ lỗi mã của bạn. Kiểm tra mức độ nhật ký của bạn được đặt thành Gỡ lỗi hoặc Chi tiết trong trình đơn thả xuống Cấp độ nhật ký trong cửa sổ logcat.
HostMyBus

2
Tôi đã thử tất cả các loại kết hợp. Của tôi không thành công vì tôi có bộ lọc của mình với dấu cách và dấu | như "Tag1 | Tag2". Đã tìm thấy câu trả lời này và loại bỏ khoảng trắng và nó hoạt động hoàn hảo. Cảm ơn!
raddevus

5

Tôi gặp sự cố khi bật bộ lọc trong Logcat. Để xem các bộ lọc trong Android Studio 3.2, bạn phải bật và tắt 'Chế độ nổi' để làm cho các bộ lọc xuất hiện lại.

nhập mô tả hình ảnh ở đây


3

Một thay thế phù hợp với tôi là chọn Show only selected applicationtùy chọn trong menu bộ lọc:

nhập mô tả hình ảnh ở đây


Bạn có ý kiến ​​gì khi tùy chọn "Firebase" đến không? Tôi đã nhìn thấy nó lần đầu tiên vào hôm nay (sau một thời gian tự hỏi tại sao ứng dụng của tôi không còn ghi được nữa).
Richard Le Mesurier

Tôi không biết nó thậm chí còn ở đó.
Ojonugwa Jude Ochalifu 14/02/17

1
Tôi cũng vậy, nhưng tôi đã chọn nó (mà không biết) và điều đó đã lãng phí rất nhiều thời gian. Thx anyway
Richard Le Mesurier

2

Tôi không biết những hình ảnh trong câu trả lời kia là cũ hay tôi đã thiếu thứ gì đó, nhưng đây là hình ảnh cập nhật.

Nhấp vào tab Màn hình Android ở dưới cùng và đảm bảo rằng tab logcat được chọn. Sau đó, nhập bất kỳ thứ gì bạn muốn để lọc đầu ra của mình. Tôi đã lọc tên thẻ của mình TAG.

nhập mô tả hình ảnh ở đây


2

Chỉ để thêm sai lầm của riêng tôi:

đảm bảo rằng khi bạn đang sử dụng Trình mô phỏng và thiết bị thực, để chuyển sang thiết bị bạn đang gỡ lỗi trong menu thả xuống ở bên trái phía trên tab logcat.


1

xem https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205 này

chỉ cần tạo bộ lọc LogCat một chèn bên dưới Chuỗi thành "LogTag", sau đó sẽ bỏ qua các dòng hệ thống

^(?!.*(BtGatt|dalvik|Environment|DataRouter|FA|art|Wifi|ServiceManager|Atfwd|tnet|MDnsDS|Download|Bluetooth|slim|QSEECOMAPI|WVCdm|QC-time|sensors|nanohub|Drm|Babel|Dropbox|gsamlab|Cryptd|Vold|QC_|Conscrypt|Dns|sound|NetWork|OpenGL|TLog|GMPM|Microphone|Process|Dynamite|cr_|VideoCapabilities|libEGL))
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.