同时获取logcat和内核日志

8
我试图通过以下命令获取日志(logcat和kmsg):

"logcat -v time -f /dev/kmsg | cat /proc/"

然而我不确定日志文件存储在哪里,以及文件名是什么。如何确定它的位置?
6个回答

9

好的,这是一个快速谷歌搜索的结果:

我从这些链接中获得的信息是:

  1. 您的命令的最后一部分实际上应该是cat /proc/kmsg
  2. 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 命令行执行的。

希望这能有所帮助。


5

这里有一个logcat选项,可以获取内核日志

adb logcat -b all

2

您没有指定使用的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.

1

只需执行以下命令,即可将内核消息显示到logcat上:

$ adb shell

$ logwrapper cat /dev/kmsg &

$ logcat


0
使用以下命令: start cmd.exe /c "adb shell cat /dev/kmsg > kmsg.txt" start cmd.exe /c "adb logcat -v threadtime > logcat.txt"

0
这是一个快速的方法:

adb shell

logcat | cat /proc/kmsg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接