logcat与dmesg有什么区别?

时间:2012-11-04 20:43:38

标签: android logcat dmesg

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

2 个答案:

答案 0 :(得分:8)

根据源代码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将仅输出安卓应用程序的日志。

答案 1 :(得分:3)

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发行版都没有,反之亦然。

的问候, zubraj