2010-01-04 15 views
20

Android için bir konsol olarak logcat kullanıyoruz. Çıkış metni/msg büyük olduğunda ve çıktıyı tam olarak göremiyorum. Günlük kedi yalnızca başlangıç ​​bölümünü gösterir. Tam msg'yi görebilmem için genişletmenin bir yolu var mı?Logcat'ta uzun metinleri/msg'yi nasıl görebilirim?

+1

evet .. Ben genellikle DDMS – Samuh

+0

bir metin editörü kopyalamak Bunun tek çıkış yolu – Bohemian

+1

var Ama u Geniş eğer sonuna kadar bütün metni kopyalamak olamaz düşünüyorum. msg son noktadan sıyrılıyor. – Bohemian

cevap

3

logcat numaralı telefonu görmek için uzun mesaj yazmak istiyorsanız, uzun mesajınızı birden çok satıra bölen android.util.Log yöntemlerini kendi yazıcınıza yazmanız faydalı olabilir.

+0

Şunu mu demek istediniz: Özel bir işlevin içinde Log.v çağrısı? – OneWorld

+1

@OneWorld - Evet, Log.v'yi mesajın farklı bölümlerinden geçiren bir kaç kez arayın. –

10

Logcat çıktısını görüntülemek için GUI'yi asla kullanmam, dolayısıyla DDMS/Eclipse UI'de kaydırma çubuklarının nerede/nerede olduğundan emin değilim.

Her neyse, logkit'i — komut satırından kullanabilirsiniz, pek çok seçenek vardır.

sürekli aktif bir cihazın kaydını izlemek için: adb logcat -d > log.txt
filtrelemek ve belirli bir günlük etiketi görüntülemek için: adb logcat -s MyLogTag

adb logcat -d
bir dosyaya bütün günlüğünün dökümünü için: adb logcat
bütün günlüğünün dökümünü için

... ve daha fazlası!

+1

Bunun kimseye nasıl yardımcı olacağını görmüyorum, oysa çok oyu var. [Logcat iletileri cihazda kesiliyor] (http://stackoverflow.com/a/8899735/253468), böylece konsoldan okuyor olsanız bile, kesilmiş metni okuyorsunuz. "... ve daha fazlası!" Da gizli bir seçenek var mı? anlatmıyor musun? – TWiStErRob

2

Tabii ki, yalnızca satırın sonuna tıklayıp sürükleyerek, sütun genişliğini değiştirebilirsiniz. Bu gerçekten uzun mesajlar için bir acıdır. Çok uzun bir mesajım varsa, genellikle hattı kopyalarım ve bir metin dosyasına yapıştırırım. Windows'ta Ctrl-C kopyalayacaktır.

+2

Logcat, msg uzunsa, metni metinden çıkarır. Tam msg’yi kaydetmez. Bu yüzden kopyaladığımda, metin de soyulmuş geliyor – Bohemian

0

Jay Askren'in yanıtına eklemek için, tam olarak genişletmek için "metin" sütun başlığının sağ kenarına çift tıklayabilirsiniz. Farkındayım ki, Eclipse'in göstereceği karakter sayısının bir sınırı bile var.

15

Sorunu çözdüğüm yol budur. Umarım yardımcı olur.

Kodunuzun içinde kullanılmasının önemli yöntemi splitAndLog'dur.

public class Utils { 
    /** 
    * Divides a string into chunks of a given character size. 
    * 
    * @param text     String text to be sliced 
    * @param sliceSize    int Number of characters 
    * @return ArrayList<String> Chunks of strings 
    */ 
    public static ArrayList<String> splitString(String text, int sliceSize) { 
     ArrayList<String> textList = new ArrayList<String>(); 
     String aux; 
     int left = -1, right = 0; 
     int charsLeft = text.length(); 
     while (charsLeft != 0) { 
      left = right; 
      if (charsLeft >= sliceSize) { 
       right += sliceSize; 
       charsLeft -= sliceSize; 
      } 
      else { 
       right = text.length(); 
       aux = text.substring(left, right); 
       charsLeft = 0; 
      } 
      aux = text.substring(left, right); 
      textList.add(aux); 
     } 
     return textList; 
    } 

    /** 
    * Divides a string into chunks. 
    * 
    * @param text     String text to be sliced 
    * @return ArrayList<String> 
    */ 
    public static ArrayList<String> splitString(String text) { 
     return splitString(text, 80); 
    } 

    /** 
    * Divides the string into chunks for displaying them 
    * into the Eclipse's LogCat. 
    * 
    * @param text  The text to be split and shown in LogCat 
    * @param tag  The tag in which it will be shown. 
    */ 
    public static void splitAndLog(String tag, String text) { 
     ArrayList<String> messageList = Utils.splitString(text); 
     for (String message : messageList) { 
      Log.d(tag, message); 
     } 
    } 
} 
İlgili konular