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

Che*_*ner 21 logging android adb logcat android-logcat

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

根据logcat命令行说明,这应该是微不足道的

logcat -f logfile.txt

我正在使用adb logcat -f logfile.txtWindows命令行

但这总是回应

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

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

我想使用logcat -n-r选项,但它们需要-f工作.

有什么建议?


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

编辑问题以使其与有用的评论和回复保持同步.

Chr*_*ton 31

不幸的是,该-f选项logcat似乎只能在Android设备的文件系统上而不是在开发主机上创建文件.

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

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

adb logcat -f /mnt/sdcard/log.txt
Run Code Online (Sandbox Code Playgroud)

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

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


小智 20

adb logcat > logfile.txt

adb logcat *:E > logfile.txt
Run Code Online (Sandbox Code Playgroud)

如果只想过滤错误.

这适用于MS Windows 7.


小智 19

使用 adb logcat -d > log.txt

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