Usando Log.d () o Log.e () en mi código

He utilizado Log.d() y Log.e() través de mi aplicación de Android para fines de depuración. Me gustaría saber si libero mi aplicación como esta, ¿el usuario verá todas esas instrucciones de depuración que pongo? ¿Necesito hacer algo especial para que el usuario no vea el registro de depuración incluso si conectan 'adb logcat' ?

Gracias.

Considere utilizar esto: isLoggable ()

Comprueba si un registro para la etiqueta especificada es o no loggable en el nivel especificado. El nivel predeterminado de cualquier etiqueta se establece en INFO. Esto significa que cualquier nivel superior e incluyendo INFO se registrará. Antes de realizar cualquier llamada a un método de registro, debe comprobar si su etiqueta debe estar registrada. Puede cambiar el nivel predeterminado estableciendo una propiedad del sistema: setprop log.tag.<YOUR_LOG_TAG> <LEVEL> donde el nivel es VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT o SUPPRESS. SUPPRESS desactivará todo el registro de su etiqueta. También puede crear un archivo local.prop con lo siguiente: log.tag.<YOUR_LOG_TAG>=<LEVEL> y colocarlo en /data/local.prop

Personalmente para los lanzamientos, quitaría los registros de la depuración y guardaría los registros del error usando Proguard.


Es mejor envolverlo así:

 public class MyLog { public static void d(String tag, String msg) { if (Log.isLoggable(tag, Log.DEBUG)) { Log.d(tag, msg); } } public static void i(String tag, String msg) { if (Log.isLoggable(tag, Log.INFO)) { Log.i(tag, msg); } } // and so on... 

Puede establecer el nivel de registro mediante la emisión de un comando adb

Dejar las declaraciones de registro puede, en algunos casos, ser muy malo: http://web.archive.org/web/20121222023201/http://vbsteven.com/archives/535

Puede utilizar ProGuard para eliminarlos automáticamente todos:

 -assumenosideeffects class android.util.Log { public static *** d(...); public static *** e(...); } 

No sólo el usuario (o cualquier aplicación con acceso al registro) puede ver sus registros, pero sus registros también hacen que su aplicación se ejecute más lentamente y consuma más energía de la batería.

Escribir un registro, especialmente de Java, es probablemente mucho más caro de lo que piensas: sólo la construcción de la cadena en Java es un montón de trabajo.

Hay aplicaciones en el mercado que permiten a los usuarios ver los registros incluso sin conectar un entorno de desarrollo.

CatLog es uno que he usado personalmente y que te mostrará todo.

Lo que he hecho en mi aplicación es crear una clase de contenedor que me pueda desactivar con una bandera booleana. Tiene la ventaja añadida de tener el parámetro TAG que es el rendimiento común de mi código.

 public class QLog { private static final String TAG = "MyAppTag"; private static final boolean DEBUG_MODE = true; public static void d(String msg) { if(DEBUG_MODE) { Log.d(TAG, msg); } } ... } 

Como se dice en android.developer.com

Cuando se está construyendo la cadena para pasar a Log.d, el compilador utiliza StringBuilder y al menos tres asignaciones se producen: StringBuilder en sí, el búfer y el objeto String. De manera realista, también hay otra asignación de búfer y copia, e incluso más presión sobre el gc. Esto significa que si su mensaje de registro se filtra, es posible que esté haciendo un trabajo significativo y que tenga gastos generales significativos.

Aquí está el enlace: http://developer.android.com/reference/android/util/Log.html

Pueden ser utilizados en el desarrollo. Cuando se libere, es mejor eliminar o ofuscar el mensaje para proteger la información personal (PII). La respuesta aquí es muy útil: Android Log.v (), Log.d (), Log.i (), Log.w (), Log.e () – ¿Cuándo utilizar cada uno?

Aquí está el que le enseña la herramienta para hacer frente a estos registros cuando suelte el software. Eliminar todas las llamadas de registro de depuración antes de publicar: ¿hay herramientas para hacer esto?

Si su usuario es un desarrollador y conecta el dispositivo a una máquina en desarrollo y tiene LogCat abierto, verá todos los registros en Logcat si interracts con esa aplicación. Cuando se va a publicar la aplicación para el usuario final debe quitar esos registros.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.