Home » Android » android – What is the difference between logcat vs. dmesg?

android – What is the difference between logcat vs. dmesg?

Posted by: admin June 15, 2020 Leave a comment

Questions:

What log source is used by logcat (with default settings: adb shell logcat). Are dmesg logs included in logcat’s output? If not, what’s the difference between dmesg logs and logcat logs?

How to&Answers:

According to the source code https://github.com/android/platform_system_core/blob/master/liblog/logd_write.c Log.d(String tag, String message) writes directly to /dev/log/main.

You can write there like this adb shell echo "Hello world" >> /dev/log/main

But dmesg prints the contents of the kernel’s ring buffer. So dmesg will print only what system writes to kernel log, logcat will output only android app’s logs.

Answer:

LOGCAT– This is used in Android , to see the different messages written by the activity managers inside the Android , u see android also uses the linux kernel , but what it does is, once the kernel boots ( the hardware initialization /probing has been taken care of) , the android starts a process called init which parses the init.rc file which contains all the android system activities , i mean the basic processes for android to boot , in this init.rc file there’s a process called zygote which starts the Dalvik Virtual Machine , and after that all the other activity managers , which will be used by the application to interact with the hardware . so its basically messages from the VM , for the application programmers to debug it .
logcat example
http://pastebin.com/bV1Vd6EQ

Dmesg- it is messages from the kernel , suppose u write a driver , it can be used as a tool for debugging drivers and other kernel code, most of them are driver messages its a good way of debugging , the kernel , driver etc..
dmesg example
http://pastebin.com/P4ja9PFi

Logcat is only for android and its not available in any other OS , both Logcat and dmesg is available on Android but not the vice versa for any linux distros .

regards,
zubraj