studio - manual de programacion android pdf
Cómo filtrar un nombre de etiqueta en el visor de Eclipse LogCat (7)
Tengo una aplicación de Android que "espacia" al LogCat y me gustaría eliminar sus entradas de logcat para que el resultado sea más legible.
¿Es posible tener un filtro que elimine las entradas de LogCat para un nombre de etiqueta específico? O un patrón de búsqueda que hace el truco?
Depende de qué manera vea su logcat.
Si está utilizando la interfaz de logcat GUI, es mejor crear un filtro para las etiquetas que desea ver. Éstos se colocan en una categoría separada. Aunque el ui cambió un poco, puedes usar esta vieja respuesta mía . Debe quedar claro cómo se usa esto (asegúrese de que el botón "mostrar pestaña de filtros guardados" esté presionado, de lo contrario no verá el botón "Agregar filtro". Puede encontrarlo en la parte superior derecha del registro) . No conozco ninguna opción que le permita filtrar ciertas etiquetas de todo el flujo de registro.
Si está utilizando la línea de comando, puede silenciar ciertas etiquetas. Ejemplo:
adb logcat AndroidRuntime:S *:V
muestra todo ( *:V
) hasta el nivel de registro detallado, excepto la etiqueta AndroidRuntime , que estará limitada al nivel de registro "silencioso", lo que significa que no imprimirá nada.
Para mostrar una sola etiqueta, puede usar
adb logcat *:S MyAppTag:V OtherTag:V
Del mismo modo, todo se silencia excepto MyAppTag y OtherTag . Vea Filtrar salida de registro para más detalles.
Esta es una respuesta tardía, pero tal vez útil. En el entorno de Eclipse, en la vista de LogCat, encima de la tabla hay un cuadro de búsqueda. Presta atención, cuando está vacío, lee:
Buscar mensajes Acepta expresiones regulares de Java. Prefijo con pid :, app :, tag: o texto: para limitar el alcance.
Significa que puedes filtrar tu etiqueta escribiendo allí la etiqueta: MyTag o incluso la etiqueta de expresiones regulares: Mi. *
No pude obtener la solución elegida para que funcione correctamente en Android Studio (el IDE que vendrá con versiones futuras de Android SDK). Sin embargo, la siguiente expresión regular resolvió mi problema:
^(?!dalvikvm)
Otra forma de filtrar los mensajes de registro que no se originan en SU aplicación es seleccionar:
Nivel de registro: detallado
"Mostrar solo la aplicación seleccionada" (del menú desplegable de selección de filtro)
Luego seleccione su aplicación de la lista desplegable de depurables en la ventana de logcat.
Esto solo debe mostrar los mensajes de registro y los resultados de su aplicación.
Puede que esto no parezca directamente relevante para la pregunta, pero aquí hay una expresión regular que filtra la mayoría de los registros generados por el sistema cuando coloca esto en su filtro de etiquetas como lo describe 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))
Sigo actualizando esta lista de etiquetas a medida que las encuentro probando en diferentes dispositivos. La lista no es exhaustiva y puede contribuir a esta respuesta. Estoy seguro de que esto ahorrará una hora a muchos.
Si hay otros registros que necesita filtrar, añádalos a esta expresión regular usando un ''| '' personaje.
Sí. Cree un filtro donde el campo "Por etiqueta de registro" es
^(?!.*(MYTAG)).*$
donde MYTAG
es la etiqueta que no quieres ver. No soy un experto en expresiones regulares (un "regexpert"? ;-)) así que puede haber una forma más simple de hacer esa negación, pero lo intenté y funciona.
Puede jugar con el filtro en el campo justo encima del área de mensaje Log Cat, ingresando cadenas de filtro allí, de esta manera:
tag:^(?!.*(DeskClock|dalvik|wpa)).*$
que mostrará todos los mensajes excepto las etiquetas "DeskClock", "dalvik" y "wpa".
Tengo un truco
Log.d(TAG, "MyTag" + message);
Como puede ver, cuando filtro con una clave "MyTag", solo muestra el registro de mi etiqueta.