Log.d () o Log.e () en android imprime textos extra no deseados

Mira la imagen para tener más idea Cuando simplemente registro un mensaje en la aplicación Android, Android Monitor imprimir demasiado extra indeseado basura texto como: Código:

Log.d(TAG, "From: " + "34369257099"); Log.d(TAG, "Message Notification Body: " + "Hello"); 

Salida en el monitor android:

 10-01 14:15:33.262 18193-23771/com.xxxxx.xxxxxx D/MyFirebaseMsgService: From: 34369257099 10-01 14:15:33.262 18193-23771/com.xxxxx.xxxxxx D/MyFirebaseMsgService: Message Notification Body: Hello [ 10-01 14:15:33.490 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9871) p->msg.arg1(0) OPEN [ 10-01 14:15:33.490 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/net/xt_qtaguid/stats | grep 10206 [ 10-01 14:15:33.527 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:33.686 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9872) p->msg.arg1(0) OPEN [ 10-01 14:15:33.686 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/18193/stat [ 10-01 14:15:33.701 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:33.723 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9873) p->msg.arg1(0) OPEN [ 10-01 14:15:33.723 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/stat [ 10-01 14:15:33.740 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:34.051 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9874) p->msg.arg1(0) OPEN [ 10-01 14:15:34.051 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/net/xt_qtaguid/stats | grep 10206 [ 10-01 14:15:34.086 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:34.258 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9875) p->msg.arg1(0) OPEN [ 10-01 14:15:34.258 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/18193/stat [ 10-01 14:15:34.274 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:34.294 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9876) p->msg.arg1(0) OPEN [ 10-01 14:15:34.294 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/stat [ 10-01 14:15:34.315 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:34.613 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9877) p->msg.arg1(0) OPEN [ 10-01 14:15:34.613 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/net/xt_qtaguid/stats | grep 10206 [ 10-01 14:15:34.648 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:34.831 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9878) p->msg.arg1(0) OPEN [ 10-01 14:15:34.831 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/18193/stat [ 10-01 14:15:34.849 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:34.867 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9879) p->msg.arg1(0) OPEN [ 10-01 14:15:34.867 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/stat [ 10-01 14:15:34.885 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:35.176 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9880) p->msg.arg1(0) OPEN [ 10-01 14:15:35.176 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/net/xt_qtaguid/stats | grep 10206 [ 10-01 14:15:35.210 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:35.404 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9881) p->msg.arg1(0) OPEN [ 10-01 14:15:35.404 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/18193/stat [ 10-01 14:15:35.421 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:35.439 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9882) p->msg.arg1(0) OPEN [ 10-01 14:15:35.439 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/stat [ 10-01 14:15:35.457 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:35.738 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9883) p->msg.arg1(0) OPEN [ 10-01 14:15:35.738 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/net/xt_qtaguid/stats | grep 10206 [ 10-01 14:15:35.764 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:35.974 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9884) p->msg.arg1(0) OPEN [ 10-01 14:15:35.974 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/18193/stat [ 10-01 14:15:35.990 19060:19060 E/ ] [adb] cuurent command is A_CLSE [ 10-01 14:15:36.009 19060:19060 E/ ] [adb] handle_packet() t->online(1) p->msg.arg0(9885) p->msg.arg1(0) OPEN [ 10-01 14:15:36.009 19060:19060 E/ ] [adb] handle the adb command, and the command = adb shell:cat /proc/stat 

¿Puedes ayudarme a resolver esto? ¿Por qué este texto extra se imprime? Y cómo me deshago de esto? He utilizado el filtro para mostrar sólo los registros relacionados con el paquete y trató de filtrar TAG sabio también. Pero vea en la imagen adjunta que el texto de basura todavía se imprime en algunos registros.

Gracias por adelantado

Dado que las líneas no deseadas parecen tener '[' en ellas, deberíamos ser capaces de crear un filtro que excluya esas líneas y obtenga lo que necesita (no podrá utilizar ese carácter en ninguna de sus sentencias de registro).

Cree un filtro utilizando ^[^\[]+$ como el mensaje de registro (y asegúrese de que Regex está seleccionado). También tendrá que establecer la etiqueta de registro o el nombre del paquete o puede obtener todo de otras aplicaciones que no incluyan '['.

Gracias a la ayuda con la regex.

Captura de pantalla de logcat

Ver la imagen correctamente a la esquina superior derecha, Tenemos algo así como un filtro básico. El uso de Mostrar sólo la aplicación seleccionada le permitirá ver sólo lo que pertenece a su aplicación. Puede utilizar Editar configuración de filtro para utilizar Filtros más complejos.

¿Utiliza ndk librairies?

Esos tipos de registro parecen una salida de código nativo.

https://android.googlesource.com/platform/system/core/+/android-4.4_r1/adb/adb.c tiene algunos comandos que producen líneas como las que tiene:

 D("handle_packet() %c%c%c%c\n", ((char*) (&(p->msg.command)))[0], ((char*) (&(p->msg.command)))[1], ((char*) (&(p->msg.command)))[2], ((char*) (&(p->msg.command)))[3]); 

Me temo que usted no será capaz de controlar esas salidas, excepto en la exclusión o la reescritura de código nativo que incrustar en su proyecto. Si no incorpora bibliotecas nativas específicas, esto es probablemente de fuentes nativas originales del dispositivo os.

Hay dos maneras de hacer esto

  1. Primero descargue el terminal cygwin y ejecute el comando adb logcat | grep appname adb logcat | grep appname here nombre de la aplicación es el nombre de la aplicación que se utiliza en el nombre del paquete. Tenga en cuenta que este comando sólo se ejecutará en cygwin.
  2. Filtrado de salida de registro La etiqueta de un mensaje de registro es una cadena corta que indica el componente del sistema del que se origina el mensaje (por ejemplo, "Ver" para el sistema de vista). La prioridad es uno de los siguientes valores de caracteres, ordenados de la prioridad más baja a la más alta: V: Verbosa (prioridad más baja) D: Debug I: Información W: Advertencia E: Error F: Fatal S: Silencioso Se puede obtener una lista de etiquetas utilizadas en el sistema, con prioridades, ejecutando logcat y observando las dos primeras columnas de cada mensaje, dadas como /.

A continuación se muestra un ejemplo de salida logcat breve obtenida con el comando logcat -v brief output. Muestra que el mensaje se relaciona con el nivel de prioridad "I" y la etiqueta "ActivityManager":

 I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...} 

Para reducir la salida del registro a un nivel manejable, puede restringir la salida del registro mediante expresiones de filtro. Las expresiones de filtro le permiten indicar al sistema las combinaciones de etiquetas prioritarias que le interesan: el sistema suprime otros mensajes para las etiquetas especificadas.

Una expresión de filtro sigue esta etiqueta de formato: prioridad …, donde etiqueta indica la etiqueta de interés y prioridad indica el nivel mínimo de prioridad para informar de esa etiqueta. Los mensajes para esa etiqueta en o por encima de la prioridad especificada se escriben en el registro. Puede suministrar cualquier número de especificaciones de etiqueta: prioridad en una sola expresión de filtro. La serie de especificaciones está delimitada en espacios en blanco.

He aquí un ejemplo de una expresión de filtro que suprime todos los mensajes de registro, excepto aquellos con la etiqueta "ActivityManager", con prioridad "Info" 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 de la expresión anterior, *: S, establece el nivel de prioridad para todas las etiquetas en "silencioso", asegurando así que sólo se muestran los mensajes de registro con "ActivityManager" y "MyApp". El uso de *: S es una excelente manera de asegurar que la salida del registro se restringe a los filtros que ha especificado explícitamente, que permite que sus filtros sirvan como una "lista blanca" para la salida del registro.

La siguiente expresión de filtro muestra todos los mensajes de registro con nivel de prioridad "advertencia" y superiores, en todas las etiquetas:

  adb logcat *:W 

Si ejecuta logcat desde su equipo de desarrollo (en lugar de ejecutarlo en un shell de adb remoto), también puede establecer una expresión de filtro predeterminada exportando un valor para la variable de entorno ANDROID_LOG_TAGS:

 export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S" 

Tenga en cuenta que el filtro ANDROID_LOG_TAGS no se exporta a la instancia de emulador / dispositivo, si está ejecutando logcat desde una shell remota o utilizando el logcat de shell de adb.

Son registros de otro proceso. No puedes evitar que sucedan, así que debes filtrar la salida del registro para mostrar solamente lo que es interesante para ti.

Sólo una conjetura: está utilizando una clase de Log alternativa que añade más salida. Para comprobar esto, cambie las llamadas Log.d () a android.util.Log.d ().

  • Cómo ver los troncos de Slog
  • Android.util.Log vs java.util.Logging - Para escribir el registro en un archivo
  • ¿Hay alguna manera de reemplazar el estándar Iniciar sesión en Android?
  • Registros de Android 'GC_EXTERNAL_ALLOC' 'GC_FOR_MALLOC'
  • Cómo imprimir / registrar la dirección de una variable en NDK
  • No Commons Iniciar sesión en Android?
  • Android: ¿cómo funciona la aplicación Application Protector?
  • Redireccionar Salida de registro a sdcard en el teléfono del cliente
  • Escribir datos de logcat de android en un archivo
  • Android ¿dónde está el registro para el archivo para la aplicación en el dispositivo?
  • E / Surface: getSlotFromBufferLocked: buffer desconocido: 0xab7519c0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.