如何在所有android操作系统中读取通过我的应用程序编写的logcat
我需要捕获通过我的应用程序写入的所有日志。我从JetlyBean操作系统中了解到,我们只需读取应用程序日志即可读取。但当我尝试通过应用程序使用exec方法使用命令“logcat-d”时,我没有得到任何数据 请帮我做这个 谢谢如何在所有android操作系统中读取通过我的应用程序编写的logcat,android,android-logcat,Android,Android Logcat,我需要捕获通过我的应用程序写入的所有日志。我从JetlyBean操作系统中了解到,我们只需读取应用程序日志即可读取。但当我尝试通过应用程序使用exec方法使用命令“logcat-d”时,我没有得到任何数据 请帮我做这个 谢谢 Saravanakumar这是我之前玩过的一个示例,它将在本地存储中生成日志文本文件: private static String generateLogcatLogCommond = "logcat -d > /sdcard/IssueReport/log.txt"
Saravanakumar这是我之前玩过的一个示例,它将在本地存储中生成日志文本文件:
private static String generateLogcatLogCommond = "logcat -d > /sdcard/IssueReport/log.txt";
public static String generateLogcatLog() throws InterruptedException {
try {
File issueReport = new File(Environment.getExternalStorageDirectory(), "IssueReport");
if (!issueReport.exists())
issueReport.mkdir();
File logFile = new File(issueReport,"log.txt");
logFile.createNewFile();
Process process = Runtime.getRuntime().exec("/system/bin/sh -");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes(generateLogcatLogCommond);
logLocation = "/sdcard/IssueReport/log.txt";
Log.d("Client", logLocation);
} catch (IOException e) {
e.printStackTrace();
}
return logLocation;
}
上面的代码所做的是使用“sh”运行“logcat-d”命令,并将其保存为本地文件。这将得到所有的logcat日志。对于您来说,您可以将其更改为“logcat-s”,它会将应用程序的所有logcat日志保存到一个文件中。您想按专业语法执行此操作吗?如果没有,请在命令行“adb logcat-s”“>>logcat.txt”中执行此操作,谢谢。对我想以编程方式捕获日志。将这些日志作为字符串获取并使用它容易吗?命令“/system/bin/sh-”在这里做什么。。我只看到了“logcat-d”命令。这将捕获在Log.d、Log.i或任何特定类型中写入的所有类型的日志。上面的代码所做的是使用“sh”运行“logcat-d”命令,并将其保存为本地文件。这将得到所有的logcat日志。对于您来说,您可以将其更改为“logcat-s”,并将应用程序的所有logcat日志保存到一个文件中。Android操作系统基于linux,在/system/bin中,您将找到所有基于linux的常用工具,如sh,您可以使用它运行其他命令,如logcat或pm等。好的,谢谢您。我试试看。但我希望以字符串形式读取日志。您可以执行简单的文件I/O,并使用readline以字符串形式读取文件的每一行。我想说,这是一个相当多的工作,如果你能描述你想做的细节在原来的职位,我可以建议更好的东西。