2015-01-15 2 views
6

Я уже прочитал this article. Но, похоже, большая часть текста, который он показывает, не в моем приложении. Как я могу отфильтровать сообщение и позволить ему показывать только журнал для моего приложения. В другом слове я хочу показать его как в Android Studio (только показ журнала ошибок из моего приложения, показывающий отметку времени и т. Д.):Прочтите logcat программно для приложения

Я пробовал что-то вроде «logcat -d -v time», но не работает. Есть идеи? Благодарю.

enter image description here

+1

Вы всегда можете разобрать строки из LogCat себя и игнорировать любые теги вы не хотите. –

ответ

15

Попробуйте следующий код, чтобы получить журналы только приложения.

public final class MyAppLogReader { 

    private static final String TAG = MyAppLogReader.class.getCanonicalName(); 
    private static final String processId = Integer.toString(android.os.Process 
      .myPid()); 

    public static StringBuilder getLog() { 

     StringBuilder builder = new StringBuilder(); 

     try { 
      String[] command = new String[] { "logcat", "-d", "-v", "threadtime" }; 

      Process process = Runtime.getRuntime().exec(command); 

      BufferedReader bufferedReader = new BufferedReader(
        new InputStreamReader(process.getInputStream())); 

      String line; 
      while ((line = bufferedReader.readLine()) != null) { 
       if (line.contains(processId)) { 
        builder.append(line); 
        //Code here 
       } 
      } 
     } catch (IOException ex) { 
      Log.e(TAG, "getLog failed", ex); 
     } 

     return builder; 
    } 
} 

Редактировать

Добавить ниже разрешения на ваш AndroidManifest файл

<uses-permission android:name="android.permission.READ_LOGS" /> 
+1

Что такое латентность для чтения журналов? – Sid

+3

Я отредактировал ваше сообщение, добавив параметр командной строки -d в logcat, иначе функция никогда не вернется, просто ждет и добавляет больше строк журнала по мере их публикации. Также в новых версиях Android (я думаю, от Jellybean вверх) и без доступа root, включены только записи logcat, созданные вашим собственным пакетом приложений. – gregko

+0

@gregko спасибо за редактирование :) –

Смежные вопросы