在Android应用程序中,我试图获取我的应用程序日志消息并将其保存到文件我使用下面的代码.我为我的每个班级使用不同的TAG,其中有几个.做logcat -d给了我所有不相关的消息..把我的包名称
logcat -d myapp.com:I*:S
不起作用结果是空的,但如果我这样做
logcat -d MYCLASS1TAG:I MYCLASS2TAG*:S
然后它有效,但我有很多课程..
我怎么才能把我的包名称和结果.. ??
try {
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null)
{
// write to my file here
}
} catch (IOException e) { }
Run Code Online (Sandbox Code Playgroud)
我不确定如何从命令行执行此操作,但Eclipse的ADT插件允许您按应用程序进行筛选.
编辑:我很好奇,所以我浏览了ADT来源,弄清楚ADT是如何做到的.它的长短是因为它使用-v long选项在每条消息中包含PID,并且它将Map从PID保存到应用程序名称.相关的源代码文件都在包装com.android.ddmuilib.logcat.LogCatMessageParser和com.android.ddmuilib.logcat.LogCatPidToNameMapper.
因此,我能想到的一个解决方法是调用shell(adb shell),找出你的PID ps,然后将adb logcat的输出传递给grep:
adb logcat -v long | grep <your PID>
Run Code Online (Sandbox Code Playgroud)
这会有点痛苦,因为每次运行应用程序时你的PID都会改变,但这就是你可以在紧要关头做到这一点的方法.
编辑:我只是注意到长格式实际上在一行打印PID并在下一行打印消息,因此您可能需要使用awk而不是grep.我会测试一些事情并发布一个后续内容.
| 归档时间: |
|
| 查看次数: |
4225 次 |
| 最近记录: |