1. 用户空间日志
用户空间日志可以用logcat抓取。还可以用grep对日志进行过滤,如下的命令过滤内容中包含TAG_A或TAG_B的日志。
logcat | grep -E 'TAG_A|TAG_B'
如果是在开发主机上,可以通过adb shell执行logcat命令。
adb shell "logcat | grep -E 'TAG_A|TAG_B'"
可以用__android_log_print()等一系列函数写日志。
__android_log_print (ANDROID_LOG_INFO,"TAG_A","hello,%s","world");
2. 内核空间日志
内核空间日志用dmesg打印全部内核消息。
dmesg
或者通过/proc/kmsg增量式地打印内核消息:第一次打印全部消息,再次打印则只打印新新消息。
cat /proc/kmsg
在开发主机上,也可以用adb shell 执行上述命令。
在Linux内和开发中,用printk()打印内核消息。在应用层,可以通过/dev/kmsg打印内核消息。
char message[] = "hello";
int fd = open ("/dev/kmsg", O_RDWR);
if (fd >= 0)
{
write (fd, message, sizeof(message));
close(fd);
}
参考资料
adb打印内核调试信息dmsg和kmsg说明
https://blog.csdn.net/love_xsq/article/details/78860619
通过va_list和/dev/kmsg在串口打印调试信息
https://blog.csdn.net/ttxgz/article/details/7067168
Android7.0 klog机制(如何将android log打印到kernel log中)
https://blog.csdn.net/fu_kevin0606/article/details/53339001
DDMS全称:Dalvik Debug Monitor Service
https://www.cnblogs.com/Nick1994/p/8510185.html
Android开发入门(三)之调试工具adb,ddms
https://blog.csdn.net/guanmjie/article/details/4439361
Android日志打印
https://www.jianshu.com/p/79c174ba07f0