在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
应该有用。
编辑问题,以便及时了解有用的评论&响应。
答案 0 :(得分:30)
不幸的是,-f
的{{1}}选项似乎只能在 android设备的文件系统上创建文件,而不能在开发主机上创建文件
通过指定裸文件名,您很可能会导致它尝试在设备的根目录中创建一个文件,该文件通常不可写。
如果您希望在设备上创建文件,请指定可写位置(适当的路径因设备和构建而异,但要采用当前示例):
logcat
通过进一步说明,实验表明,键入adb logcat -f /mnt/sdcard/log.txt
会导致设备上的adb logcat
程序被执行,类似于键入/system/bin/logcat
时所发生的情况。 ADB可以将该程序的标准或错误输出简单地传递回主机,但是没有设备端API,设备上运行的程序可以使用它来要求ADB在开发机器上创建文件。保存到文件和旋转操作可以在开发机器上运行的ADB部分中实现,但这不是它目前的工作方式。
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
这会将日志写入您的开发计算机。