Android Journal avec un lien vers la source directement depuis Logcat


Exemple

C'est un bon truc pour ajouter un lien au code, il sera donc facile de passer directement au code qui a généré le journal.

Avec le code suivant, cet appel:

MyLogger.logWithLink("MyTag","param="+param);


Aura pour résultat:

07-26...012/com.myapp D/MyTag: MyFrag:onStart(param=3)  (MyFrag.java:2366) // << logcat converts this to a link to source!

Voici le code (dans une classe appelée MyLogger):

static StringBuilder sb0 = new StringBuilder(); // reusable string object

public static void logWithLink(String TAG, Object param) {
    StackTraceElement stack = Thread.currentThread().getStackTrace()[3];
    sb0.setLength(0);
    String c = stack.getFileName().substring(0, stack.getFileName().length() - 5); // removes the ".java"
    sb0.append(c).append(":");
    sb0.append(stack.getMethodName()).append('(');
    if (param != null) {
        sb0.append(param);
    }
    sb0.append(") ");
    sb0.append(" (").append(stack.getFileName()).append(':').append(stack.getLineNumber()).append(')');
    Log.d(TAG, sb0.toString());
}

Ceci est un exemple élémentaire, il peut être facilement étendu pour créer un lien vers l'appelant (conseil: la pile sera [4] au lieu de [3]), et vous pouvez également ajouter d'autres informations pertinentes.