Pregunta

Quiero escribir algo de salida de depuración en el registro de revisarlo con Logcat.

Si escribo algo en System.out esto está ya representada en Logcat.

¿Cuál es la manera limpia de escritura en el registro y añadir etiquetas a los niveles y mi producción?

¿Fue útil?

Solución

android.util.Log . Se le permite escribir en el registro con diversos niveles de registro, y se puede especificar diferentes etiquetas para agrupar el resultado. Por ejemplo

Log.w("myApp", "no network");

dará salida a una advertencia con la etiqueta myApp y el mensaje no hay red.

Otros consejos

La etiqueta se usa sólo para encontrar fácilmente su salida, debido a que la salida de LogCat puede ser a veces muy largo. Se puede definir en algún lugar de su clase:

  

private static final String TAG = "myApp";

y utilizarlo al depurar

  

Log.v (TAG, "hizo algo");

introducir descripción de la imagen aquí

Puede aplicarse también un filtro para buscar sólo la etiqueta.

Uso android.util.Log y los métodos estáticos definidos allí (por ejemplo, e(), w()).

import android.util.Log;

y

Log.i("the your message will go here"); 

Por favor, ver los registros que de esta manera,

Log.e("ApiUrl = ", "MyApiUrl") (error)
Log.w("ApiUrl = ", "MyApiUrl") (warning)
Log.i("ApiUrl = ", "MyApiUrl") (information)
Log.d("ApiUrl = ", "MyApiUrl") (debug)
Log.v("ApiUrl = ", "MyApiUrl") (verbose)
String one = object.getdata();
Log.d(one,"");

Recientemente me encontré con este enfoque de la escritura en los registros de Android, que creo que es muy impresionante.

public static final boolean FORCED_LOGGING = true;
private static final int CALLER_STACK_INDEX = 3;

public static void showLogs(String message) {
        if (FORCED_LOGGING) {
            StackTraceElement caller = Thread.currentThread().getStackTrace()[CALLER_STACK_INDEX];

            String fullClassName = caller.getClassName();
            String className = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
            String methodName = caller.getMethodName();
            int lineNumber = caller.getLineNumber();

            Log.i("*** " + className + "." + methodName + "():" + lineNumber + "\n" , message);
        }
    }

Se puede usar mi libary llamada RDALogger. Aquí es github enlace .

Con esta biblioteca, se puede registrar su mensaje con el nombre del método / nombre de la clase / número de línea y la barra de navegación. Con este enlace, al hacer clic en registro, la pantalla pasa a esta línea de código.

Para utilizar la biblioteca, se debe hacer implementaciones a continuación.

en Gradle nivel de raíz

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

en Gradle nivel de aplicación

dependencies {
            implementation 'com.github.ardakaplan:RDALogger:1.0.0'
    }

Para inicializar la biblioteca, que debe empezar así (en Application.class o antes del primer uso)

RDALogger.start("TAG NAME").enableLogging(true);

Y que puedes log lo que quiera;

    RDALogger.info("info");
    RDALogger.debug("debug");
    RDALogger.verbose("verbose");
    RDALogger.warn("warn");
    RDALogger.error("error");
    RDALogger.error(new Throwable());
    RDALogger.error("error", new Throwable());

Y finalmente, salida muestra que todo lo que quiere (nombre de la clase, nombre del método, vínculo de anclaje, mensaje)

08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29)   ///   IN METHOD : onCreate
    info
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top