logging c'est - Comment écrire des sorties dans la connexion à Android?




logcat quoi (7)

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

Si j'écris quelque chose à System.out cela est déjà affiché dans logcat.

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


Answers

S'il vous plaît voir les journaux 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)

Récemment, j'ai trouvé 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);
        }
    }

import android.util.Log;

et alors

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

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


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

private static final Chaîne TAG = "myApp";

et l'utiliser lors du débogage

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

Vous pouvez également appliquer un filtre pour rechercher uniquement le tag.


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

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

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


Plus précisément, Settings.Secure.ANDROID_ID. Il s'agit d'une quantité de 64 bits générée et stockée lors du premier démarrage du périphérique. Il est réinitialisé lorsque le périphérique est effacé.

ANDROID_IDsemble être un bon choix pour un identifiant unique de périphérique. Il y a des inconvénients: premièrement, il n'est pas fiable à 100% sur les versions d'Android antérieures à la version 2.2. (“Froyo”).De plus, il y a eu au moins un bogue largement observé dans un combiné populaire d'un grand fabricant, où chaque instance a le même ANDROID_ID.





android logging logcat