¿Cómo escribo salidas en el inicio de sesión en Android?

153

Quiero escribir algunos resultados de depuración en el registro para revisarlo con logcat.

Si escribo algo en System.out, esto ya se muestra en logcat.

¿Cuál es la forma limpia de escribir en el registro y agregar niveles y etiquetas a mi salida?

Janusz
fuente

Respuestas:

211

Mira dentro android.util.Log. Le permite escribir en el registro con varios niveles de registro, y puede especificar diferentes etiquetas para agrupar la salida. Por ejemplo

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

generará una advertencia con la etiqueta myApp y el mensaje no network.

Erich Douglass
fuente
¿Cuál sería la diferencia usando log.d?
JMASTER B
55
wen Log.w(...)stands de advertencia. Hay más versiones: d- depuración, e- error, i- información, v- detallado, wtf- Qué falla tan terrible. ;-)
patryk.beza
20

La etiqueta solo se usa para encontrar fácilmente su salida, porque la salida de LogCat a veces puede ser muy larga. Puedes definir en algún lugar de tu clase:

Private static final String TAG = "myApp";

y úsalo cuando depures

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

ingrese la descripción de la imagen aquí

También puede aplicar un filtro para buscar solo la etiqueta.

usuario1767754
fuente
17

Uso android.util.Logy los métodos estáticos definidos allí (p. Ej. e(), w()).

CommonsWare
fuente
8
import android.util.Log;

y entonces

Log.i("the your message will go here"); 
Atreya Rath
fuente
5

Por favor, vea los registros 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)
Dnyaneshwar Panchal
fuente
1

Puedes usar mi biblioteca llamada RDALogger. Aquí está el enlace github .

Con esta biblioteca, puede registrar su mensaje con el nombre del método / nombre de clase / número de línea y enlace de anclaje. Con este enlace, cuando hace clic en el registro, la pantalla va a esta línea de código.

Para usar la biblioteca, debe hacer las implementaciones a continuación.

en el nivel de raíz gradle

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

en el nivel de aplicación gradle

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

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

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

Y luego puedes registrar lo que quieras;

    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, la salida muestra todo lo que desea (nombre de clase, nombre de método, enlace 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
Arda
fuente
0

Recientemente encontré este enfoque para escribir registros en Android, que creo que es súper increíble.

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);
        }
    }
Tushar Pandey
fuente