Question

Je veux écrire une sortie de débogage dans le journal de l'examiner avec logcat.

Si j'écris quelque chose à system.out ce qui est déjà affiché dans logcat.

Quelle est la manière propre à écrire dans le journal et ajouter des niveaux et des balises à ma sortie?

Était-ce utile?

La solution

Regardez dans android.util.Log . Il vous permet d'écrire dans le journal avec différents niveaux de journaux, et vous pouvez spécifier des balises à la sortie groupe. Par exemple

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

affichera un avertissement avec l'étiquette myApp et le message pas de réseau.

Autres conseils

La balise est juste utilisé pour trouver facilement votre sortie, car la sortie de LogCat peut être parfois très long. Vous pouvez définir quelque part dans votre classe:

  

static private String TAG = "myApp";

et de l'utiliser lors du débogage

  

Log.v (TAG, "a fait quelque chose");

entrer image description ici

Vous pouvez appliquer ainsi un filtre pour rechercher uniquement la balise.

Utilisation android.util.Log et les méthodes statiques qui y sont définis (par exemple, e(), w()).

import android.util.Log;

et

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

S'il vous plaît voir les journaux que de cette façon,

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,"");

Récemment, je trouve cette approche à l'écriture de journaux dans Android, qui je pense est super génial.

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);
        }
    }

Vous pouvez utiliser mon libary appelé RDALogger. Voici github lien .

Avec cette bibliothèque, vous pouvez vous connecter avec votre message nom de la méthode / nom de classe / numéro de ligne et un lien d'ancrage. Avec ce lien, quand vous cliquez, l'écran passe à cette ligne de code.

Pour utiliser la bibliothèque, vous devez faire des implémentations ci-dessous.

dans le niveau racine gradle

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

niveau app gradle

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

Pour la bibliothèque de l'initialisation, vous devriez commencer comme ça (en Application.class ou avant la première utilisation)

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

Et que vous pouvez vous connecter ce que vous voulez;

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

Et enfin sortie vous montre tout ce que vous voulez (nom de la classe, le nom de la méthode, lien d'ancrage, message)

08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29)   ///   IN METHOD : onCreate
    info
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top