Есть ли способ автоматического доступа к любому Log in Logcat двойным щелчком мыши? - PullRequest
6 голосов
/ 09 ноября 2011

Есть ли способ автоматического доступа к любому входу в систему Logcat двойным щелчком мыши?

На самом деле, когда происходит сбой моего Android-приложения, я могу дважды щелкнуть строку, например,

at com.myapp.mypackage$Class.function(File.java:117)

И, дважды щелкнув эту строку, я автоматически перенаправляюсь на соответствующую строку моего кода.

Но, когда я пытаюсь сгенерировать ту же строку в другом журнале, пример:

Log.e("TAG", "at com.myapp.mypackage$Class.function(File.java:117)");

Двойной щелчок больше не работает ...

Есть идеи?

Ответы [ 2 ]

8 голосов
/ 03 сентября 2012

Если вы хотите создать журнал в logcat, по которому можно щелкнуть и перейти к своей строке, используйте следующий метод для его создания:

Наслаждайтесь!

public static void showLogCat(String tag, String msg) {

        StackTraceElement[] stackTraceElement = Thread.currentThread()
                .getStackTrace();
        int currentIndex = -1;
        for (int i = 0; i < stackTraceElement.length; i++) {
            if (stackTraceElement[i].getMethodName().compareTo("showLogCat") == 0)
            {
                currentIndex = i + 1;
                break;
            }
        }

        String fullClassName = stackTraceElement[currentIndex].getClassName();
        String className = fullClassName.substring(fullClassName
                .lastIndexOf(".") + 1);
        String methodName = stackTraceElement[currentIndex].getMethodName();
        String lineNumber = String
                .valueOf(stackTraceElement[currentIndex].getLineNumber());

        Log.i(tag, msg);
        Log.i(tag + " position", "at " + fullClassName + "." + methodName + "("
                + className + ".java:" + lineNumber + ")");

    }
3 голосов
/ 09 ноября 2011

Если вы не возражаете против беспорядка в своем журнале, вы можете легко добавить new Exception() к сообщению журнала

Log.e("TAG", "Looky here see", new Exception());
...