2015-01-15 26 views
6

Zaten this article okudum. Ancak, gösterdiği metnin çoğunun benim uygulamamda olmadığı görülüyor. İletiyi nasıl filtreleyebilirim ve yalnızca uygulamamın günlüğünü göstermesine izin verebilirim. Başka bir deyişle, Android Studio'daki gibi göstermek istiyorum (sadece uygulamadan hata günlüğünü gösteren, zaman damgasını gösteren, vb.):Bir uygulama için programlı olarak mantığı oku

"logcat -d -v time" gibi bir şey denedim ama çalışmıyor Herhangi bir fikir? Teşekkürler.

enter image description here

+1

izni altına ekleyin ve istemediğiniz herhangi bir etiketi görmezden. –

cevap

15

deneyin Aşağıdaki kodu yalnızca uygulamanızın günlükleri almak için.

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

Düzenleme

herzaman kendin logcat gelen satırları ayrıştırmak edebilirsiniz AndroidManifest dosyası

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

Günlükleri okumak için gecikme süresi nedir? – Sid

+3

Yazıcınızı -d komut satırı parametresini logcat'e ekleyerek düzenledim, işlev hiçbir zaman geri dönmez, yalnızca bekler ve gönderildikçe daha fazla günlük satırı ekler. Ayrıca Android'in daha yeni sürümlerinde (Jellybean'dan geliyor) ve root erişimi olmadan, sadece kendi uygulama paketiniz tarafından oluşturulan logcat girişleri dahildir. – gregko

+0

@gregko düzenleme için teşekkürler :) –

İlgili konular