Friday, February 10, 2012

How to capture application log of Android ?


You must request the android.permission.READ_LOGS in your Android Manifest.
Then you can run the logcat from the command line on the phone, and just get a dump of the output. I recommend filtering the output for both AndroidRuntime with the error level only (to gather exceptions that crashed your app) as well as all messages from your app's log tag.
Process mLogcatProc = null;
BufferedReader reader = null;
try
{
        mLogcatProc = Runtime.getRuntime().exec(new String[]
                {"logcat", "-d", "AndroidRuntime:E [Your Log Tag Here]:V *:S" });

        reader = new BufferedReader(new InputStreamReader
(mLogcatProc.getInputStream()));

        String line;
        final StringBuilder log = new StringBuilder();
        String separator = System.getProperty("line.separator"); 

        while ((line = reader.readLine()) != null)
        {
                log.append(line);
                log.append(separator);
        }

        // do whatever you want with the log.  I'd recommend using Intents to create an email
}

catch (IOException e)
{
        ...
}

finally
{
        if (reader != null)
                try
                {
                        reader.close();
                }
                catch (IOException e)
                {
                        ...
                }


No comments:

Post a Comment