你必须加入权限:
[java]
然后您可从手机系统里的命令行运行logcat,它只是得到一个转储的输出。
我推荐进行过滤输出,只输出AndroidRuntime的error错误和你的应用程序的所有log信息。
[java]
Process mLogcatProc = null;
BufferedReader reader = null;
try
{
/* 运行logcat
AndroidRuntime:E(输出AndroidRuntime的error等级以上错误)
[你应用程序包名]:V(输出你的应用程序的V — Verbose等级以上错误,既所有log信息)
*:S(其他log信息都silent,既都不输出)
*/
mLogcatProc = Runtime.getRuntime().exec(new String[]
{"logcat", "-d", "AndroidRuntime:E [你应用程序包名]: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);
}
/* 做任何你想要的。比如保存到文件。我建议把日志通过电子邮件发送给你
请查看:http://blog.csdn.net/laihuan99/article/details/8929493
*/
}
catch (IOException e)
{
...
}
finally
{
if (reader != null)
try
{
reader.close();
}
catch (IOException e)
{
...
}
}
Process mLogcatProc = null;
BufferedReader reader = null;
try
{
/* 运行logcat
AndroidRuntime:E(输出AndroidRuntime的error等级以上错误)
[你应用程序包名]:V(输出你的应用程序的V — Verbose等级以上错误,既所有log信息)
*:S(其他log信息都silent,既都不输出)
*/
mLogcatProc = Runtime.getRuntime().exec(new String[]
{"logcat", "-d", "AndroidRuntime:E [你应用程序包名]: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);
}
/* 做任何你想要的。比如保存到文件。我建议把日志通过电子邮件发送给你
请查看:http://blog.csdn.net/laihuan99/article/details/8929493
*/
}
catch (IOException e)
{
...
}
finally
{
if (reader != null)
try
{
reader.close();
}
catch (IOException e)
{
...
}
}