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
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)
{
...
}
}
2 Comments
You can find the source of an sample application at http://code.google.com/p/android-random/source/browse/#svn/trunk/Logcat
This snippet has helped me more then you will ever know. Thank you so much for helping others learn!