without txt studio specific open log example debug app android logcat

txt - Cómo filtrar Android logcat por aplicación?



logcat without android studio (27)

A la izquierda en la vista de logcat tienes las ventanas "Filtros guardados". Aquí puede agregar un nuevo filtro de logcat por nombre de aplicación (por ejemplo, com.your.package)

Esta pregunta ya tiene una respuesta aquí:

¿Cómo puedo filtrar la salida de logcat de Android por aplicación? Lo necesito porque cuando adjunto un dispositivo, no puedo encontrar el resultado que quiero debido a correo basura de otros procesos.


Agregue el paquete de su aplicación en "Nombre del filtro" haciendo clic en el botón "+" en la esquina superior izquierda en logcat.


Cuando obtengamos un error de nuestra aplicación, Logcat mostrará el filtro de sesión automáticamente. Podemos crear filtro de sesión por cuenta propia. Simplemente agregue un nuevo filtro de logcat, complete el formulario de nombre del filtro. Luego complete el nombre de la aplicación con su paquete de solicitud. (por ejemplo: mi aplicación es "Adukan" y el paquete es "com.adukan", entonces llene por nombre de la aplicación con el paquete de la aplicación "com.adukan")


De acuerdo con http://developer.android.com/tools/debugging/debugging-log.html :

Aquí hay un ejemplo de una expresión de filtro que suprime todos los mensajes de registro, excepto aquellos con la etiqueta "ActivityManager", en la prioridad "Información" o superior, y todos los mensajes de registro con la etiqueta "MyApp", con prioridad "Debug" o superior:

adb logcat ActivityManager:I MyApp:D *:S

El elemento final en la expresión anterior, *: S, establece el nivel de prioridad para todas las etiquetas en "silencioso", lo que garantiza que solo se muestren los mensajes de registro con "Ver" y "MiAplicación".

  • V - Detallado (prioridad más baja)
  • D - Depurar
  • I - Información
  • W - Advertencia
  • E - Error
  • F - Fatal
  • S - Silencio (prioridad más alta, en el que nada se imprime alguna vez)

Editar: el original está abajo. Cuando un Android Studio no existía. Pero si quiere filtrar toda su aplicación, usaría pidcat para ver la terminal o Android Studio. Al usar pidcat en lugar de logcat, las etiquetas no necesitan ser la aplicación. Usted puede simplemente llamarlo con pidcat com.your.application

Debes usar tu propia etiqueta, mira: http://developer.android.com/reference/android/util/Log.html

Me gusta.

Log.d("AlexeysActivity","what you want to log");

Y luego, cuando quiera leer el registro, use>

adb logcat -s AlexeysActivity

Eso filtra todo lo que no usa la misma etiqueta.


En Android Studio en la ventana del monitor de Android: 1. Seleccione la aplicación que desea filtrar. 2. Seleccione "Mostrar solo la aplicación seleccionada".


En Linux / Un * X / Cygwin puede obtener una lista de todas las etiquetas en el proyecto (con un apéndice :V después de cada una) con este comando (dividir porque es legible):

$ git grep ''String/s/+TAG/s*=/s*'' | / perl -ne ''s/.*String/s+TAG/s*=/s*"?([^".]+).*;.*/$1:V/g && print '' | / sort | xargs AccelerometerListener:V ADNList:V Ashared:V AudioDialog:V BitmapUtils:V # ...

Cubre las etiquetas definidas en ambas formas de definición de etiquetas:

private static final String TAG = "AudioDialog"; private static final String TAG = SipProfileDb.class.getSimpleName();

Y luego solo úsala para adb logcat.


En general, hago este comando "adb shell ps" en el prompt (permite ver los procesos en ejecución) y es posible descubrir el pid de la aplicación. Con este pid en las manos, vaya a Eclipse y escriba pid: XXXX (XXXX es la solicitud pid) luego la aplicación filtra los resultados de los registros.

O, de una manera más fácil ... en la vista de logcat en Eclipse, busque cualquier palabra relacionada con su aplicación deseada, descubra el pid y luego haga un filtro pid pid "pid: XXXX".


En mi computadora portátil con Windows 7, uso ''adb logcat | busque "com.example.name" ''para filtrar la salida de logcat relacionada con el programa del sistema del resto. La salida del programa logcat se canaliza al comando find. Cada línea que contiene ''com.example.name'' se envía a la ventana. Las comillas dobles son parte del comando find.

Para incluir el resultado de mis comandos de registro, utilizo el nombre del paquete, aquí "com.example.name", como parte del primer parámetro en mis comandos de registro como este:

Log.d("com.example.name activity1", "message");

Nota: Mi teléfono Samsung Galaxy produce mucho menos salida relacionada con el programa que el emulador de nivel 17.


Encontré una aplicación en la tienda que puede mostrar el nombre / proceso de un registro. Dado que Android Studio simplemente coloca un (?) En los registros que generan los otros procesos, me pareció útil saber qué proceso está generando este registro. Pero aún así, esta aplicación no cuenta con el filtro por el nombre del proceso. Puedes encontrarlo here .


Esta es probablemente la solución más simple.

Además de una solución de Tom Mulcahy, puedes simplificarla aún más a continuación:

alias logcat="adb logcat | grep `adb shell ps | egrep ''/bcom.your.package.name/b'' | cut -c10-15`"

El uso es fácil como un alias normal. Simplemente escriba el comando en su shell:

logcat

La configuración de alias lo hace práctico. Y la expresión regular lo hace robusto para aplicaciones multiproceso, suponiendo que solo se preocupe por el proceso principal.

Por ejemplo, puede establecer más alias para cada proceso como desee. O usa la solución de hegazy. :)

Además, si desea establecer niveles de registro, es

alias logcat-w="adb logcat *:W | grep `adb shell ps | egrep ''/bcom.your.package.name/b'' | cut -c10-15`"


Estoy trabajando en Android Studio, hay una buena opción para obtener el mensaje usando el nombre del paquete. En "Editar configuración de filtro" puede crear un nuevo filtro agregando su nombre de paquete en el "por nombre de paquete".


Hola, tengo la solución al usar esto:

Tienes que ejecutar este comando desde la terminal. Obtuve el resultado,

adb logcat | grep `adb shell ps | grep com.package | cut -c10-15`


La aplicación Android Device Monitor disponible en sdk / tools / monitor tiene una opción de logcat para filtrar ''por nombre de aplicación'' donde ingresa el nombre del paquete de la aplicación.


La salida de registro de cat se puede filtrar para que solo muestre los mensajes de su paquete utilizando estos argumentos.

adb com.your.package: I *: s

Editar - Hablé pronto.

adb com.your.package:v


Lo que suelo hacer es tener un filtro separado por PID que sería el equivalente de la sesión actual. Pero, por supuesto, cambia cada vez que ejecuta la aplicación. No es bueno, pero es la única forma de tener toda la información sobre la aplicación independientemente de la etiqueta de registro.


Sí, ahora lo obtendrás automáticamente ...
Actualice a AVD 14 , donde el logcat session filter automáticamente
donde filtra el registro en su aplicación específica (paquete)


Si pudieras vivir con el hecho de que pidcat sesión desde una ventana de terminal adicional, podría recomendar pidcat (Toma solo el nombre del paquete y rastrea los cambios de PID).


Si utilizas Eclipse, puedes filtrar por aplicación como es posible con Android Studio presentado por shadmazumder.

Simplemente vaya a Logcat , haga clic en Mostrar vista de filtros guardados , luego agregue un nuevo filtro de logcat . Aparecerá lo siguiente:

Luego agrega un nombre al filtro y, por nombre de la aplicación , especifica el paquete de su aplicación.


Supongamos que su aplicación llamada MyApp contiene los siguientes componentes.

  • MyActivity1
  • MyActivity2
  • MyActivity3
  • MyService

Para filtrar la salida de registro de su aplicación MyApp usando logcat, escriba lo siguiente.

adb logcat MyActivity1:v MyActivity2:v MyActivity3:v MyService:v *:s

Sin embargo, esto requiere que conozca los nombres de TAG para todos los componentes en su aplicación en lugar de filtrar utilizando el nombre de la aplicación MyApp. Ver http://developer.android.com/tools/debugging/debugging-log.html para detalles.

Una solución para permitir el filtrado a nivel de aplicación sería agregar un prefijo a cada uno de sus TAG únicos.

  • MyAppActivity1
  • MyAppActivity2
  • MyAppActivity3
  • MyAppService

Ahora se puede realizar un filtro comodín en la salida de logcat utilizando el prefijo TAG.

adb logcat | grep MyApp

El resultado será el resultado de toda la aplicación.


Use nombres de clase completamente calificados para sus etiquetas de registro:

public class MyActivity extends Activity { private static final String TAG = MyActivity.class.getName(); }

Entonces

Log.i(TAG, "hi");

Entonces usa grep

adb logcat | grep com.myapp


Yo uso para almacenarlo en un archivo:

int pid = android.os.Process.myPid(); File outputFile = new File(Environment.getExternalStorageDirectory() + "/logs/logcat.txt"); try { String command = "logcat | grep " + pid + " > " + outputFile.getAbsolutePath(); Process p = Runtime.getRuntime().exec("su"); OutputStream os = p.getOutputStream(); os.write((command + "/n").getBytes("ASCII")); } catch (IOException e) { e.printStackTrace(); }


mi función .bash_profile, puede ser de alguna utilidad

logcat() { if [ -z "$1" ] then echo "Process Id argument missing."; return fi pidFilter="/b$1/b" pid=$(adb shell ps | egrep $pidFilter | cut -c10-15) if [ -z "$pid" ] then echo "Process $1 is not running."; return fi adb logcat | grep $pid } alias logcat-myapp="logcat com.sample.myapp"

Uso:

$ logcat-myapp

$ logcat com.android.something.app


para filtrar los registros en la línea de comandos utilice la secuencia de comandos siguiente

adb logcat com.yourpackage: v


poner esto en applog.sh

#!/bin/sh PACKAGE=$1 APPPID=`adb -d shell ps | grep "${PACKAGE}" | cut -c10-15 | sed -e ''s/ //g''` adb -d logcat -v long / | tr -d ''/r'' | sed -e ''/^/[.*/]/ {N; s//n/ /}'' | grep -v ''^$'' / | grep " ${APPPID}:"

entonces: applog.sh com.example.my.package


puede lograr esto en el logcat de Eclipse ingresando lo siguiente al campo de búsqueda.

app:com.example.myapp

com.example.myapp es el nombre del paquete de la aplicación.


use el primer parámetro como nombre de su aplicación. Log.d ("your_Application_Name", "mensaje");

y en LogCat: create Filter ---> Filter Name & by Log Tag: es igual a ''your_Application_Name'' creará una nueva pestaña para su aplicación.