ver studio print mensajes logger log hacer errores como app android filter adb logcat

studio - ¿Cómo excluir ciertos mensajes por nombre TAG usando Android adb logcat?



mensajes log android (7)

Logcat permite filtrar registros, pero funciona así: usted define los filtros y Logcat solo muestra los mensajes que coinciden con los filtros. ¿Pero hay una manera de mostrar todos los registros EXCEPTO algunos TAG definidos por filtros?


Combina las previsiones positivas y negativas para un filtrado más potente.

Ejemplo:

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

Las etiquetas en el primer paréntesis anidado están incluidas.

Las etiquetas en el segundo están excluidas.


Dentro de la vista de Eclipse Logcat no hay tal opción. Sin embargo, puede utilizar el nivel de registro para excluir cualquier mensaje cuyo nivel de registro sea demasiado bajo. P.ej. configurarlo en I (nfo) no muestra D (ebug) y (V) mensajes erbose.


Desde el shell, puedes usar un comando como:

adb logcat AlarmManagerService:S PowerManagerService:S *:V

que incluirá todos los registros aparte de aquellos con las etiquetas AlarmManagerService y AlarmManagerService .

(El :S significa "silencioso", lo que significa que no se imprimirá nada para esas etiquetas; el :V significa "verboso", lo que significa que todo se imprimirá para todas las demás etiquetas. La documentación de Android para logcat tiene más detalles de otras opciones puedes usar en los filtros)

También puede usar la variable de entorno ANDROID_LOG_TAGS para configurar filtros predeterminados, por ejemplo (en bash):

export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"


Puede hacerlo desde DDMS Monitor (y también Eclipse o Android Studio) con el recuadro de entrada de expresión regular y aserciones negativas de búsqueda anticipada ; por ejemplo, excluyo mucho ruido de mi registro con lo siguiente:

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

(La "etiqueta:" no es parte de la expresión regular, pero le dice a LogCat que solo aplique la expresión regular al campo Etiqueta. Si usa este truco en un filtro guardado, ponga solo la expresión regular en el cuadro de entrada "Etiqueta" y omita el prefijo "etiqueta:")

En el panel del monitor logcat de Android Studio, puede configurar un filtro guardado para esto abriendo el menú desplegable en la esquina superior derecha (puede tener seleccionada la opción "Mostrar solo la aplicación seleccionada") y seleccionar Editar configuración de filtro. Cree un nuevo filtro de logcat y coloque ^(?!(WifiMulticast ... etc. )) En el cuadro Etiqueta de registro, con la casilla de verificación Regex marcada.


Si desea excluir o filtrar ciertos mensajes por nombre de etiqueta en Android studio, vaya a LogCat window => Edit Filter configuration, e ingrese lo siguiente debajo de "por Log Tag (regex):"

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

Tenga en cuenta que no hay espacios, esto es importante


^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

Esto excluirá textos con contenido WindowManager, dalvik, ...

tag:^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

Esto excluirá las etiquetas WindowManager, dalvik, ... de logcat


Si está utilizando adb logcat , puede canalizarlo a través de grep y usar su coincidencia invertida: de la página de manual de grep :

v, --invert-match Invertir el sentido de coincidencia, para seleccionar líneas que no coinciden.

Por ejemplo:

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

Puede extender esto usando expresiones regulares .

Aquí hay un ejemplo de tal expresión:

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

Éste verificaría que ocurriera cualquiera de las opciones dadas, grep no las enumeraría.