129

Logcat はログのフィルタリングを許可しますが、次のように機能します。フィルターを定義すると、logcat はフィルターに一致するメッセージのみを表示します。しかし、フィルタによって定義されたいくつかのタグを除いて、すべてのログを表示する方法はありますか?

4

11 に答える 11

224

正規表現入力ボックスと否定先読みアサーションを使用して、DDMS Monitor (および Eclipse または Android Studio) 内からこれを行うことができます。たとえば、次のようにログから多くのノイズを除外しています。

tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))

(「tag:」は正規表現の一部ではありませんが、LogCat に Tag フィールドにのみ正規表現を適用するように指示します。保存されたフィルターでこのトリックを使用する場合は、「Tag」入力ボックスに正規表現のみを入力します。 、「tag:」プレフィックスを省略します)

Android Studio の logcat モニター ペインでは、右上のドロップダウンを開き ([選択したアプリケーションのみを表示] が選択されている場合があります)、[フィルター構成の編集] を選択することで、保存されたフィルターを設定できます。新しい logcat フィルタを作成し、^(?!(WifiMulticast...etc を配置します。))ログタグボックスで、Regexチェックボックスをオンにします。

于 2013-01-30T16:54:49.457 に答える
78

Android Studio で特定のメッセージをタグ名で除外またはフィルター処理する場合は、LogCat ウィンドウに移動 => フィルター構成の編集を行い、"by Log Tag(regex):" の下に次のように入力します。

^(?!(tag1|tag2|tag3|tag4))

スペースがないことに注意してください。これは重要です

于 2015-04-14T18:27:10.150 に答える
53

使用している場合はadb logcat、grepを介してパイプし、逆マッチングを使用できます。grepのマンページから:

v、-invert-match一致する意味を反転して、一致しない行を選択します。

例えば:

$adb logcat | grep --invert-match 'notshownmatchpattern' 

正規表現を使用してこれを拡張できます。

このような式の例を次に示します。

"/^(?:emails|tags|addresses)"

これは、指定されたもののいずれかが発生するかどうかをチェックし、grepはそれらをリストしません。

于 2011-04-01T09:43:06.593 に答える
17

より強力なフィルタリングを行うには、正と負の両方の先読みを組み合わせます。

例:

(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))

最初のネストされた括弧内のタグが含まれます。

秒のタグは除外されます。

于 2015-06-08T16:43:56.610 に答える
3

これを行う簡単な方法は、表示したいタグのみをフィルタリングすることです。

adb logcat -s "Tag1" -s "Tag2" -s "Tag3"

それらのタグのみを表示します。

于 2018-06-28T10:41:11.237 に答える
0

Eclipse Logcatビュー内には、そのようなオプションはありません。ただし、ログレベルを利用して、ログレベルが低すぎるメッセージを除外することができます。例:I(nfo)に設定しても、D(ebug)および(V)erboseメッセージは表示されません。

于 2011-04-01T09:43:19.667 に答える