Saltar al contenido

¿Cómo habilito / deshabilito los niveles de registro en Android?

Solución:

La documentación de Android dice lo siguiente sobre los niveles de registro:

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 siempre se guardan.

Por lo tanto, es posible que desee considerar eliminar el registro Las declaraciones de cierre de sesión detalladas, posiblemente usando ProGuard como se sugiere en otra respuesta.

Según la documentación, puede configurar el inicio de sesión en un dispositivo de desarrollo utilizando Propiedades del sistema. La propiedad a establecer es log.tag.<YourTag> y debe establecerse en uno de los siguientes valores: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT, o SUPPRESS. Más información sobre esto está disponible en la documentación de la isLoggable() método.

Puede establecer propiedades temporalmente mediante el setprop mando. Por ejemplo:

C:android>adb shell setprop log.tag.MyAppTag WARN
C:android>adb shell getprop log.tag.MyAppTag
WARN

Alternativamente, puede especificarlos en el archivo ‘/data/local.prop’ de la siguiente manera:

log.tag.MyAppTag=WARN

Las versiones posteriores de Android parecen requerir que /data/local.prop sea de solo lectura. Este archivo se lee en el momento del arranque, por lo que deberá reiniciar después de actualizarlo. Si /data/local.prop se puede escribir en todo el mundo, es probable que se ignore.

Finalmente, puede configurarlos mediante programación usando el System.setProperty() método.

La forma más fácil es probablemente ejecutar su JAR compilado a través de ProGuard antes de la implementación, con una configuración como:

-assumenosideeffects class android.util.Log {
    public static int v(...);
}

Eso, además de todas las otras optimizaciones de ProGuard, eliminará cualquier declaración de registro detallada directamente del código de bytes.

Una forma común es hacer un int llamado loglevel y definir su nivel de depuración basado en loglevel.

public static int LOGLEVEL = 2;
public static boolean ERROR = LOGLEVEL > 0;
public static boolean WARN = LOGLEVEL > 1;
...
public static boolean VERBOSE = LOGLEVEL > 4;

    if (VERBOSE) Log.v(TAG, "Message here"); // Won't be shown
    if (WARN) Log.w(TAG, "WARNING HERE");    // Still goes through

Más tarde, puede cambiar LOGLEVEL para todos los niveles de salida de depuración.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *