ver tag studio que print logger log hacer errores como abrir android logcat

tag - Android Log.v(), Log.d(), Log.i(), Log.w(), Log.



logger android (6)

Creo que el punto de esos diferentes tipos de registro es si quiere que su aplicación básicamente autofiltre sus propios registros. Entonces, Verbose podría registrar absolutamente todo lo que sea importante en su aplicación, luego el nivel de depuración registrará un subconjunto de los registros detallados, y luego el nivel de información registrará un subconjunto de los registros de depuración. Cuando llegas a los registros de errores, solo deseas registrar cualquier tipo de error que pueda haber ocurrido. También hay un nivel de depuración llamado Fatal para cuando algo realmente golpea al fan en su aplicación.

En general, tiene razón, es básicamente arbitrario, y depende de usted definir qué se considera un registro de depuración versus informativo, versus error, etc. etc.

Los diferentes métodos de LogCat son:

Log.v(); // Verbose Log.d(); // Debug Log.i(); // Info Log.w(); // Warning Log.e(); // Error

¿Cuáles son las situaciones apropiadas para utilizar cada tipo de registro? Sé que tal vez solo sea un poco de semántica y que en realidad no importa, pero para el filtrado de LogCat en Android Studio y Eclipse, sería bueno saber que estoy usando los métodos adecuados en los momentos adecuados.


El sitio web de Android Studio recientemente (creo) proporcionó algunos consejos sobre qué tipo de mensajes esperar de diferentes niveles de registro que pueden ser útiles junto con la respuesta de Kurtis:

  • Verbose : muestra todos los mensajes de registro (el valor predeterminado).
  • Depuración : muestra los mensajes de registro de depuración que son útiles solo durante el desarrollo, así como los niveles de mensajes más bajos en esta lista.
  • Información : muestra los mensajes de registro esperados para el uso regular, así como los niveles de mensajes más bajos en esta lista.
  • Advertir : muestra los posibles problemas que aún no son errores, así como los niveles de mensajes más bajos en esta lista.
  • Error : muestra los problemas que han provocado errores, así como el nivel de mensaje inferior en esta lista.
  • Afirmar : muestra los problemas que el desarrollador espera que nunca deban ocurrir.

Los diferentes métodos son indicaciones de prioridad. Como los has enumerado, van de menos a más importantes. Creo que la forma en que los asigna específicamente para depurar los registros en su código depende del componente o la aplicación en la que esté trabajando, así como la forma en que Android los trata en diferentes tipos de compilación (eng, userdebug y user). He hecho una buena cantidad de trabajo en los demonios nativos de Android, y así es como lo hago. Puede que no se aplique directamente a su aplicación, pero puede haber algunos puntos en común. Si mi explicación suena vaga, es porque algo de esto es más un arte que una ciencia. Mi regla básica es ser lo más eficiente posible, asegurarme de que pueda depurar razonablemente su componente sin matar el rendimiento del sistema, y ​​siempre verificar errores y registrarlos.

V - Impresiones de estado a diferentes intervalos, o sobre cualquier evento que ocurra y que mi componente procese. También, posiblemente, impresiones muy detalladas de la carga útil de los mensajes / eventos que mi componente recibe o envía.

D - Detalles de los eventos menores que ocurren dentro de mi componente, así como la carga de los mensajes / eventos que mi componente recibe o envía.

I: el encabezado de cualquier mensaje / evento que mi componente reciba o envíe, así como cualquier parte importante de la carga útil que sea crítica para la operación de mi componente.

W - Cualquier cosa que ocurra que sea inusual o sospechosa, pero no necesariamente un error.

E - Errores, es decir, cosas que no deben suceder cuando las cosas funcionan como deberían.

El mayor error que veo que la gente comete es el uso excesivo de cosas como V, D y I, pero nunca usa W o E. Si un error es, por definición, no se supone que suceda, o solo debería suceder muy raramente, es extremadamente difícil. barato para que usted registre un mensaje cuando se produce. Por otro lado, si cada vez que alguien presiona una tecla haces un Log.i (), estás abusando del recurso de registro compartido. Por supuesto, use el sentido común y tenga cuidado con los registros de errores para cosas fuera de su control (como los errores de red), o con los que se encuentran en bucles estrechos.

Tal vez malo

Log.i("I am here");

Bueno

Log.e("I shouldn''t be here");

Con todo esto en mente, cuanto más cerca esté su código de "listo para producción", más podrá restringir el nivel de registro base para su código (necesita V en alfa, D en beta, I en producción o posiblemente W en producción) ). Debe ejecutar algunos casos de uso simples y ver los registros para asegurarse de que aún puede comprender en su mayor parte lo que está sucediendo a medida que aplica un filtrado más restrictivo. Si ejecuta el filtro a continuación, aún debería poder decir qué está haciendo su aplicación, pero tal vez no obtenga todos los detalles.

logcat -v threadtime MyApp:I *:S


Puedes usar LOG como:

Log.e(String, String) (error) Log.w(String, String) (warning) Log.i(String, String) (information) Log.d(String, String) (debug) Log.v(String, String) (verbose)

código de ejemplo:

private static final String TAG = "MyActivity"; ... Log.i(TAG, "MyClass.getView() — get item number " + position);


Vayamos en orden inverso:

  • Log.e : Esto es para cuando suceden cosas malas. Utilice esta etiqueta en lugares como dentro de una declaración de captura. Sabe que se ha producido un error y, por lo tanto, está registrando un error.

  • Log.w : use esto cuando sospeche que algo turbio está sucediendo. Es posible que no esté completamente lleno en el modo de error, pero tal vez se recuperó de algún comportamiento inesperado. Básicamente, use esto para registrar cosas que no esperaba que sucedieran pero no es necesariamente un error. Algo así como "hey, esto sucedió, y es raro , deberíamos investigarlo".

  • Log.i : Use esto para publicar información útil en el registro. Por ejemplo: que se ha conectado con éxito a un servidor. Básicamente utilízalo para reportar éxitos.

  • Log.d : Utilice esto para fines de depuración . Si desea imprimir un montón de mensajes para poder registrar el flujo exacto de su programa, use esto. Si desea mantener un registro de valores variables, use esto.

  • Log.v : Use esto cuando quiera volverse completamente loco con su registro. Si por alguna razón ha decidido registrar cada pequeña cosa en una parte particular de su aplicación, use la etiqueta Log.v.

Y como bonificación ...

  • Log.wtf : Usa esto cuando las cosas Log.wtf absolutamente, horriblemente, mal de mierda. Conoces esos bloques de captura donde estás capturando errores que nunca deberías obtener ... sí, si quieres registrarlos usa Log.wtf

El código fuente proporciona una guía básica:

El orden en términos de verbosidad, de menor a mayor, es ERROR, WARN, INFO, DEBUG, VERBOSE. Verbose nunca debe compilarse en una aplicación, excepto durante el desarrollo. Los registros de depuración se compilan pero se eliminan en tiempo de ejecución. Los registros de errores, advertencias e información se mantienen siempre.

Para más detalles, la respuesta de Kurtis es acertada. Simplemente agregaría: No registre ninguna información de identificación personal o privada en INFO o superior ( WARN / ERROR ). De lo contrario, los informes de errores o cualquier otra cosa que incluya el registro pueden estar contaminados.