adb logcat -f log.txt错误:无法打开输出文件:只读文件系统

时间:2014-05-02 09:39:52

标签: android logging adb logcat android-logcat

在Windows(win7)上,通过USB调试真实手机我想将logcat日志转储到我的PC上的文件中。数据速率超出了日食中可用的数据;我想要整个未过滤的日志。

根据logcat command line instructions,这应该是微不足道的

logcat -f logfile.txt

我在Windows命令行上使用adb logcat -f logfile.txt

但这始终以

响应

couldn't open output file: Read-only file system

文件系统不是只读。创建和编写文件工作正常,而adb logcat > logfile.txt之类的原始重定向也可以按预期工作。提供日志文件的完整路径没有任何区别。

我想使用logcat的-n-r选项,但需要-f才能使用。

有什么建议吗?


注记。 这个问题接近于one asked on Ubuntu但是在Windows上没有对我有用的答案,并且有一个建议我已经尝试过但不起作用。 SO上大多数类似的引用只是引用帮助页面,说-f filename应该有用。

编辑问题,以便及时了解有用的评论&响应。

3 个答案:

答案 0 :(得分:30)

不幸的是,-f的{​​{1}}选项似乎只能在 android设备的文件系统上创建文件,而不能在开发主机上创建文件

通过指定裸文件名,您很可能会导致它尝试在设备的根目录中创建一个文件,该文件通常不可写。

如果您希望在设备上创建文件,请指定可写位置(适当的路径因设备和构建而异,但要采用当前示例):

logcat

通过进一步说明,实验表明,键入adb logcat -f /mnt/sdcard/log.txt 会导致设备上的adb logcat程序被执行,类似于键入/system/bin/logcat时所发生的情况。 ADB可以将该程序的标准或错误输出简单地传递回主机,但是没有设备端API,设备上运行的程序可以使用它来要求ADB在开发机器上创建文件。保存到文件和旋转操作可以在开发机器上运行的ADB部分中实现,但这不是它目前的工作方式。

bonitarunner在开发机器上使用shell重定向的解决方案是一个简单的答案。应该可以提出一个主机端过滤器程序或脚本,它将实现类似于adb shell logcat-r选项的限制和旋转功能。

答案 1 :(得分:20)

adb logcat > logfile.txt

adb logcat *:E > logfile.txt

如果您只想过滤错误。

这适用于MS Windows 7。

答案 2 :(得分:19)

使用adb logcat -d > log.txt

这会将日志写入您的开发计算机。