2011-02-12 9 views
47

Al hacer clic en Crear filtro, no se pudo deducir de los documentos cómo crear un filtro para, por ejemplo, dos o más etiquetas. Si tengo dos etiquetas com.test.TestClassA y com.test.TestClassB, ¿cómo creo un filtro que muestre el registro para estas dos clases? Vi cómo puedes iniciar ADB solo para ciertas etiquetas, pero ¿cómo se puede hacer esto en eclipse? Por favor, brinde detalles gracias. ¿Qué es exactamente lo que necesito ingresar en la línea de la etiqueta al crear un nuevo filtro en eclipse?Filtro Android LogCat para varias etiquetas en Eclipse

Respuesta

1

La única forma que he visto es Create a Filter using PID para que se muestre un mensaje de registro de su aplicación en ese filtro. Me pregunto si esto es posible a través de los nombres tag en la versión actual de ADT para eclipse.

+1

Estaré encantado de saberlo también .. Uso PID, un solo TAG y/o filtros múltiples. ¿No hay metacaracteres en los filtros TAG? – DJC

9

el 12 feb, 02:58 am, AndroidDevTime escribió:

Si tengo dos etiquetas com.test.TestClassA y com.test .TestClassB ¿cómo creo un filtro que muestra el registro para estas dos clases?

El campo "etiqueta de registro" acepta expresiones regulares Java, por lo que hacer esto:

^com.test.TestClassA $ |^$ com.test.TestClassB

que coincide exactamente esas etiquetas que especificado. Podrías ser más económico/eficiente/lo que sea con la expresión regular, dependiendo de cuánto quieras perder con eso.

+0

Realmente no puedo entender cómo usar esto. Simplemente no funciona programáticamente utilizando Runtime.getRuntime(). Exec(); – Shine

27

En la última versión del SDK para Eclipse que muestra ahora dos versiones para logcat (uno en desuso); en la versión no publicada, se pueden combinar filtros usando barras O: |.

Por ejemplo, al hacer clic en + y abrir un cuadro de diálogo para crear un nuevo filtro, proporcione un nombre al filtro y luego en uno de los campos (por ejemplo TAG) ingrese com.lampreynetworks|Bluetooth y verá la salida de todas las etiquetas que contengan com.lampreynetworks y Bluetooth. El '*' está implícito aquí como si cualquier parte del TAG contiene cualquiera de ese texto que se mostrará. También tenga en cuenta que no debe haber espacios entre las barras OR

No he intentado combinar el 'por TAG' y 'por (alguna otra opción)' pero de alguna manera tengo la sensación de que no funciona.

+5

¡Sin espacios entre las barras OR! –

54

Como pointed por Brain Reinhold puede combinar filtros de etiquetas con la barra vertical | (que obviamente significa "O" lógico). También puede utilizar ese (así como otras expresiones regulares) de sintaxis en el cuadro de búsqueda Logcat (precediendo etiquetas con tag: prefijo):

tag:com.test.TestClassA|com.test.TestClassB

filtrado más complejo también es posible.Por ejemplo, aquí está el filtro de búsqueda que muestra mensajes de cualquiera de android.process.media o com.android.camera aplicaciones, que tienen al menos un dígito (\d) en el texto del mensaje y están etiquetados con cualquiera de dalvikvm o AndroidRuntime tags:

app:android.process.media|com.android.camera tag:dalvikvm|AndroidRuntime text:\d

Screenshot

Un filtro corto y útil es tag:^(?!dalvikvm) que elimina todos esos ruidosos registros de Dalvik.

También vale la pena mencionar que se puede desactivar fácilmente a cualquier parte del filtro mediante la colocación de barra vertical en el extremo de la parte que desea desactivar (por ejemplo, la colocación de | justo después app:android.process.media|com.android.camera en el ejemplo desactiva por encima de eficacia de filtrado por nombre de la aplicación, mientras aún conservando el filtrado por etiquetas y texto).

+1

El uso también puede usar solo pequeñas partes de palabras para filtrar, como 'cam' en lugar de' com.android.camera'. Pero ten en cuenta que es sensible a mayúsculas y minúsculas. P.ej. para el desarrollo de Bluetooth utilizo 'tag: BT | luetooth | bt | Bt | MyAppTag' – OneWorld

2

Lo hago desde la línea de comandos. Tener un terminal diferente para cada filtro adb. Entonces, si los alinea uno al lado del otro, puede tener una buena idea de lo que está sucediendo.

Cuestiones relacionadas