How to capture application log.

2 votes · 2 comments

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.

Carter

raw ·
copy
· download
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) { ... } }
Add a comment

2 Comments

You can find the source of an sample application at http://code.google.com/p/android-random/source/browse/#svn/trunk/Logcat

Reply · April 24, 2009, 2:43 p.m.

This snippet has helped me more then you will ever know. Thank you so much for helping others learn!

Reply · May 21, 2009, 1:33 a.m.