7

logcat 使用什么日志源(默认设置:adb shell logcat)。dmesg 日志是否包含在 logcat 的输出中?如果不是,dmesg 日志和 logcat 日志有什么区别?

4

2 回答 2

9

根据源代码https://github.com/android/platform_system_core/blob/master/liblog/logd_write.c Log.d(String tag, String message)直接写入/dev/log/main.

你可以像这样写在那里adb shell echo "Hello world" >> /dev/log/main

但是dmesg打印内核环形缓冲区的内容。所以dmesg只会打印系统写入内核日志的内容,logcat只会输出android应用程序的日志。

于 2012-11-04T21:44:09.403 回答
4

LOGCAT——这在Android中使用,查看Android内部活动管理器写入的不同消息,你看到android也使用linux内核,但它的作用是,一旦内核启动(硬件初始化/探测已经照顾),android启动了一个名为init的进程,它解析包含所有android系统活动的init.rc文件,我的意思是android启动的基本进程,在这个init.rc文件中有一个名为zygote的进程启动Dalvik 虚拟机,然后是所有其他活动管理器,应用程序将使用这些管理器与硬件进行交互。所以它基本上是来自 VM 的消息,供应用程序程序员调试它。logcat 示例 http://pastebin.com/bV1Vd6EQ

Dmesg - 来自内核的消息,假设你编写了一个驱动程序,它可以用作调试驱动程序和其他内核代码的工具,其中大多数是驱动程序消息,它是调试内核,驱动程序等的好方法。 dmesg 示例 http://pastebin.com/P4ja9PFi

Logcat 仅适用于 android 并且在任何其他操作系统中不可用,Logcat 和 dmesg 在 Android 上可用,但反之则不适用于任何 linux 发行版。

问候,祖布拉吉

于 2012-11-05T11:13:38.703 回答