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?
2 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.

- 6,692
- 38
- 39
-
I can't find "echo xxx" in linux running scripts both in dmesg and logcat, so where does it goes ? – ransh Dec 28 '16 at 07:39
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

- 25
- 2