タグ名でlogcatの出力をフィルタリングします


151

実際のデバイス(エミュレーターではない)からのlogcat出力をタグ名でフィルターしようとしていますが、かなりのスパムであるすべてのメッセージを取得します。"browser:"や "webkit: "のようなブラウザからメッセージを読みたいだけですが、動作しません...ここに私が得るものがあります:

実際の出力

回答:


294

これを使って:

adb logcat -s "TAGNAME"

7
ありがとうございました!s「をタグ名」:上記のadb logcat *と同等です
ムンク

3
<タグ名>を除外するにはどうすればよいですか?
Arunabh Das

フィルターで除外する唯一の方法はレベルによるものだと思います。I:logcat *:例えば、いくつかのアプリは唯一の情報や、より高いレベルを示すために、logcatレベルを設定し、その後、デバッグをスパムされている場合
誰かのどこか

1
上記を-f filenameで使用することは可能ですか?たとえば、私のシナリオは、ログをTagNameでフィルタリングし、テキストファイルにダンプすることです。
グリーンゴブリン2014年

9
Das-「adb logcat TAGNAME:s」はノイズの多いタグを無音にします。
Don Park、

56

私のように誰かがこれに出くわした場合、次のように間にコンマを追加することにより、複数のタグでフィルタリングできます。

adb logcat -s "browser","webkit"

このコードをどこに置くべきかを説明します。私は新しい蜂です。説明してください
Zar E Ahmer 2014

1
@Nepsterタイプのターミナル。
非同期2014

Windowsでcygwinを使用している場合は、grepを使用できます。
sgupta

12

別のオプションは、特定のタグのログレベルを設定することです。

adb logcat SensorService:S PowerManagerService:S NfcService:S power:Iセンサー:E

一部のタグのログレベルを設定するだけの場合は、タグごとに設定できます。


9

ADBシェルに依存せず、それ(adb logcat)を通常のLinux出力として扱い、pipします。

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

5
不要なトラフィックが大量に送信され、フィルターが機能しないため、これは悪い選択です。無関係なプロセスがメッセージにログを記録すると、偶然に何らかの文字列が含まれるメッセージが表示されます。
John Smith

and the filter obviously won't work、 やってみました?結果に応じて答えを貼り付けました。
Siwei Shen申思维2015年

1
問題は、grepが使用できないWindowsに関するものでした
sroskelley

1
Windowsでcygwinを使用している場合は、grepを使用できます。
sgupta

6

タグを作成する方法は次のとおりです。

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

getCannonicalNameを使用できます

ここに私は次のタグフィルターがあります:

  • 任意(*)ビュー-VERBOSE
  • 任意(*)アクティビティ-VERBOSE
  • Xyz(*)で始まるタグ-エラー
  • System.out-SILENT(自分のコードでLogを使用しているため)

ここで私がターミナルに入力したもの:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.