2012-11-04 294 views
7

logcat使用的日誌源(默認設置:adb shell logcat)。 logcat的輸出中是否包含dmesg日誌?如果不是,dmesg日誌和logcat日誌有什麼區別?logcat與dmesg有何區別?

回答

8

根據源代碼https://github.com/android/platform_system_core/blob/master/liblog/logd_write.cLog.d(String tag, String message)直接寫入/dev/log/main

你可以在裏面寫這樣adb shell echo "Hello world" >> /dev/log/main

dmesg打印內核環形緩衝區的內容。所以dmesg將只打印什麼系統寫入內核日誌,logcat將只輸出android應用程序的日誌。

+0

我不能在這兩個dmesg裏和logcat的Linux上運行腳本找到「回聲XXX」,所以它去哪裏? – ransh

2

LOGCAT--這是在Android中使用,看到Android內部活動管理器編寫的不同消息,你看android也使用linux內核,但是它的功能是一旦內核啓動(硬件初始化/探測已被照顧),android啓動一個稱爲init的進程,該進程解析包含所有android系統活動的init.rc文件,我的意思是android的基本進程啓動,在這個init.rc文件中有一個進程稱爲啓動Dalvik虛擬機的zygote,然後是所有其他活動管理器,應用程序將使用這些管理器與硬件進行交互。所以它基本上來自VM的消息,供應用程序員調試。 logcat的例子 http://pastebin.com/bV1Vd6EQ

Dmesg-是從內核信息,假設你所寫的驅動程序,它可以被用來作爲一種工具,用於調試驅動程序和其他內核代碼,其中大部分是司機消息的一個好辦法調試,內核,驅動程序等。 dmesg的例子 http://pastebin.com/P4ja9PFi

logcat的是僅適用於Android和它在任何其他操作系統無法使用,既logcat的和dmesg的適用於Android,但沒有任何Linux發行版的,反之亦然。

問候, zubraj

+0

我無法在dmesg和logcat中運行腳本的linux中找到「echo xxx」,那麼它在哪裏呢? – ransh