To help out development without actually having some knowledge it's really important to know how and when to get logs.
Lately more and more people in this section do grab appropriate logs, which is a good thing and has already helped in fixing a bunch of bugs.
To stop (especially new) people from constantly asking how to get logcats I decided to hand out a quick reference on how to grab logs efficiently via adb / terminal / app.
There is an app which can export apps (see the end of this post), but you should learn how to get logs via adb anyways, as a dmesg is often crucial in case of debugging bsods.
I won't post instructions in how to get adb working - you can use Google or take this CM wiki entry as a starting point.
The three most important log types are:
- logcat: the logoutput of the Android system
- radio logcat: the log outpur ot your System / BB / RIL communication
- kernel log (kmsg / dmesg): the kernel messages
Additionally there's the last_kmsg which is a dump of the kernel log until the last shutdown.
For getting the logs via the Terminal Emulator app the commands differ a little:
Radio Logcat:Code:adb logcat -v time -d > logcat.log
Code:adb logcat -b radio -v time -d > logcat_radio.log
Note: Cyanogenmod (based) ROMs require the following setting to export kernel logs via adb:
Settings - Developer Options - Root access - choose: "Apps and ADB"
Last_kmsg:Code:adb shell su -c dmesg > dmesg.log
Code:adb shell su -c "cat /proc/last_kmsg" > last_kmsg.log
Radio Logcat:Code:logcat -v time -d > /sdcard/logcat.log
Kernel Log:Code:logcat -b radio -v time -d > /sdcard/logcat_radio.log
Last_kmsg:Code:su -c dmesg > /sdcard/dmesg.log
Code:su -c "cat /proc/last_kmsg" > /sdcard/last_kmsg.log
- -v time will include timestamps in the logcats
- -d will export the complete log.
If you want to save a continuous log you can remove the -d parameter - then you need to cancel the logging process via CTRL+C.
To export a continuous kernel log use adb shell su -c "cat /proc/kmsg" > dmesg.log (and cancel it via CTRL+C again).
Exporting logs with an app:
I used to recommend Lumberjack for grabbing logs, but it doesn't work with Jellybean properly anymore and fails to export the dmesg.
I googled for a while and found a great (and fully open sourced) alternative to export logs: SysLog
With this great app there are no more excuses - at least open the app, export all 4 log types and attach the zip file from /sdcard/SysLog to your bug report.
Before anyone asks (duh!), Kernel log = dmesg, Last kernel log= last_kmsg, main log = logcat, modem log = radio log.
Lumberjack still is great to have a look at logs on the phone, but for exporting you probably should use SysLog as it does it quickly and reliable