我试图通过以下命令获取日志(logcat和kmsg):
然而我不确定日志文件存储在哪里,以及文件名是什么。如何确定它的位置?"logcat -v time -f /dev/kmsg | cat /proc/"
然而我不确定日志文件存储在哪里,以及文件名是什么。如何确定它的位置?"logcat -v time -f /dev/kmsg | cat /proc/"
好的,这是一个快速谷歌搜索的结果:
我从这些链接中获得的信息是:
cat /proc/kmsg
logcat -v time -f /dev/kmsg
将logcat输出写入内核消息缓冲区所以:
logcat -v time -f /dev/kmsg | cat /proc/kmsg
将会把logcat和内核日志输出到stdout
(无论它是什么)。你可以按如下方式将输出写入文件:
将同时输出logcat和内核日志到stdout
(无论其是什么)。你可以使用以下命令将输出写入文件:
logcat -v time -f /dev/kmsg | cat /proc/kmsg > /sdcard/log.txt
以上操作是在已获取 root 权限的 Android 4.4.2 设备中,通过 adb shell
命令行执行的。
希望这能有所帮助。
这里有一个logcat选项,可以获取内核日志
adb logcat -b all
您没有指定使用的Android版本,但如果您使用的是8.1及以上版本,则完全可以在logcat输出中包含带有时间戳的内核消息。
要将它们一起打印到文件中,请使用以下命令:
$adb logcat -b all -d > logcat_all.txt
如果您想将内核消息与时间戳从其他日志中分开,请使用以下命令:
$adb logcat -b kernel -d > logcat_kernel.txt
-b <buffer>
在这里指定了您希望在输出中拥有哪些缓冲区,其中一个可能的缓冲区是内核(kernel),默认情况下不包括它。如果您设置-b all
,则会将它们全部放在一起。更多详细信息,请参阅logcat --help
-b <buffer>, --buffer=<buffer> Request alternate ring buffer, 'main',
'system', 'radio', 'events', 'crash', 'default' or 'all'.
Multiple -b parameters or comma separated list of buffers are
allowed. Buffers interleaved. Default -b main,system,crash.
只需执行以下命令,即可将内核消息显示到logcat上:
$ adb shell
$ logwrapper cat /dev/kmsg &
$ logcat
adb shell
logcat | cat /proc/kmsg