LogCatを「スパム」するAndroidアプリケーションがあります。出力を読みやすくするために、logcatエントリを削除したいと思います。
特定のタグ名のLogCatエントリを削除するフィルターを使用することはできますか?または、トリックを行う検索パターン?
はい。 [ログタグによる]フィールドが
^(?!.*(MYTAG)).*$
ここで、MYTAG
は表示したくないタグです。私は正規表現の専門家ではないので(「正規表現」?;-))、その否定を行うより簡単な方法があるかもしれませんが、私はそれを試しただけで機能します。
次のように、フィルター文字列を入力することにより、Log Catメッセージ領域のすぐ上のフィールドでフィルターをいじることができます。
tag:^(?!.*(DeskClock|dalvik|wpa)).*$
すべてのメッセージを表示します除くタグ "DeskClock"、 "dalvik"、および "wpa"。
これは質問に直接関連していないように思えるかもしれませんが、タグフィルターにこれを配置すると、システム生成ログのほとんどを除外する正規表現があります Robによる説明 。
^(?!(WifiMulticast|WifiHW|MtpService|PushClient|InputMethodManager|Provider|SurfaceTextureClient|ImageLoader|dalvikvm|OpenGLRenderer|skia|AbsListView|MediaPlayer|AudioManager|VelocityTracker|Drv|Jpeg|CdpDrv|IspDrv|TpipeDrv|iio|ImgScaler|IMG_MMU|ResMgrDrv|JpgDecComp|JpgDecPipe|mHalJpgDec|PipeMgrDrv|mHalJpgParser|jdwp|libEGL|Zygote|Trace|InputEventReceiver|SpannableStringBuilder|IInputConnectionWrapper|MotionRecognitionManager|Choreographer|v_galz|SensorManager|Sensors|GC|LockPatternUtils|SignalStrength|STATUSBAR-BatteryController|BatteryService|STATUSBAR-PhoneStatusBar|WifiP2pStateTracker|Watchdog|AlarmManager|BatteryStatsImpl|STATUSBAR-Clock))
さまざまなデバイスでテストを行っているときに、タグのリストを更新し続けます。リストは完全ではなく、この回答に自由に貢献できます。これにより多くの人が1時間節約できると確信しています。
他に除外する必要があるログがある場合は、 '|を使用してこの正規表現に追加します。 ' キャラクター。
Logcatの表示方法によって異なります。
GUI logcatインターフェースを使用している場合、表示するタグのフィルターを作成するのが最善です。これらは別のカテゴリに分類されます。 UIは少し変更されましたが、これを使用できます 私からの古い回答 。これがどのように使用されるかを明確にする必要があります(「保存されたフィルタータブを表示する」ボタンが押されていることを確認してください。ログの右上))ログストリーム全体から特定のタグを除外するオプションを認識していません。
コマンドラインを使用している場合、特定のタグをミュートできます。例:
adb logcat AndroidRuntime:S *:V
すべてを表示します(*:V
)詳細ログレベルまで。ただし、タグAndroidRuntimeは除きます。これは「無音」ログレベルに制限され、何も印刷されません。 。
単一のタグを表示するには、使用できます
adb logcat *:S MyAppTag:V OtherTag:V
同様に、MyAppTagおよびOtherTagを除くすべてが沈黙します。詳細については、「 ログ出力のフィルタリング 」を参照してください。
Android Studio(IDE Android = SDK)。しかし、次の正規表現は私の問題を解決しました:
^(?!dalvikvm)
トリックがあります:
Log.d(TAG, "MyTag" + message);
ご覧のとおり、キー「MyTag」でフィルタリングすると、タグのログのみが表示されます。
これは応答が遅いですが、おそらく便利です。 Eclipse環境のLogCatビューでは、テーブルの上に検索ボックスがあります。空の場合、次のように表示されます。
メッセージを検索します。 Java正規表現。スコープを制限するために、pid:、app:、tag :、またはtext:の接頭辞を受け入れます。
つまり、tag:MyTagまたは正規表現tag:My。*と書くことでタグをフィルタリングできます。
アプリに由来しないログメッセージを除外する別の方法は、以下を選択することです。
ログレベル:詳細
「選択したアプリケーションのみを表示」(フィルター選択ドロップダウンから)
次に、logcatウィンドウのデバッグ可能なドロップダウンリストからアプリケーションを選択します。
これにより、アプリからのログメッセージと出力のみが表示されます。