android – How can I see long texts/msg in logcat?-ThrowExceptions

Exception or error:

Since we are using logcat as a console for android.
There are cases when the the output text/msg is kinda big and I can’t see the complete output.
The log cat shows only the starting part of it.
Is there a way to expand it so that I can see the full msg?

How to solve:

If you want to write long messages to see in logcat it may be worth writing your own wrapper around the android.util.Log methods which splits your long message over multiple lines.

###

This is the way I solved the problem. Hope it helps.

The important method for using it inside your code is 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);
        }
    }
}

###

I never use the GUI to view logcat output, so I’m not sure where/whether there are scrollbars in the DDMS/Eclipse UI.

Anyway, you can use logcat from the command line — there are loads of options.

To watch the log of an active device continually: adb logcat
To dump the whole log: adb logcat -d
To dump the whole log to a file: adb logcat -d > log.txt
To filter and display a particular log tag: adb logcat -s MyLogTag

…and much more!

###

Of course, you can change the column width, just by going to the end of the line clicking and dragging. That is a pain for really long messages. If I have a really long message, I generally copy the line and paste it into a text file. Ctrl-C in Windows will copy it.

###

To add to Jay Askren’s answer, you can also double-click on the right-edge of the “text” column header to expand it fully. I’ve noticed that even so there’s a limit to the number of chars Eclipse will display.

Leave a Reply

Your email address will not be published. Required fields are marked *