2010-01-04 72 views
20

因爲我們使用logcat作爲android的控制檯。 有些情況下,輸出文本/味精有點大,我看不到完整的輸出。 日誌貓只顯示它的起始部分。 有沒有辦法擴展它,以便我可以看到完整的味精?如何在logcat中看到長文本/味精?

+1

啊.. 我通常把它複製到從DDMS – Samuh 2010-01-04 08:42:44

+0

一個文本編輯器,我認爲這是唯一的出路 – Bohemian 2010-01-04 09:01:42

+1

但你不能整段文字複製,直到如果大結束。 味精在最後被剝離。 – Bohemian 2010-01-04 09:53:11

回答

3

如果要編寫長消息以在logcat中查看,那麼可能需要編寫自己的包裝器,將方法分解爲多條線路上的長消息。

+0

你是否認爲它是這樣的:在自定義函數中調用Log.v? – OneWorld 2010-10-28 14:49:28

+1

@OneWorld - 是的,多次調用Log.v傳遞消息的不同部分。 – 2010-10-28 16:18:13

10

我從來不使用GUI來查看logcat輸出,所以我不確定DDMS/Eclipse UI中是否有滾動條。

無論如何,你可以使用從命令行— logcat有負載的選項。

連續監視的有源器件的日誌:adb logcat
要轉儲整個日誌:adb logcat -d
要轉儲整個記錄到文件中:adb logcat -d > log.txt
要過濾和顯示特定的日誌標籤:adb logcat -s MyLogTag

...還有更多!

+1

我不明白這將如何幫助任何人,但有很多票。 [logcat消息在設備上被截斷](http://stackoverflow.com/a/8899735/253468),所以即使您閱讀通過控制檯,您正在閱讀截斷的文本。是否有隱藏在「......以及更多」的選項?你沒有告訴? – TWiStErRob 2016-09-10 09:19:44

2

當然,您可以更改列的寬度,只需點擊並拖動即可。對於很長的消息來說這是一個痛苦。如果我有一個非常長的消息,我通常會複製該行並將其粘貼到文本文件中。 Windows中的Ctrl-C將複製它。

+2

如果消息很長,Logcat會剝離文本。它不記錄完整的味精。所以當我複製它時,文字也會被刪除 – Bohemian 2010-01-05 05:12:40

0

要添加到Jay Askren的答案中,您還可以雙擊「文本」列標題的右邊緣以將其完全展開。我注意到,即使如此,Eclipse會顯示的字符數也是有限制的。

15

這是我解決問題的方法。希望能幫助到你。

在代碼中使用它的重要方法是splitAndLog。

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