当前位置:   article > 正文

adb如何打印kernel输出log_adb kernel log

adb kernel log

https://www.jianshu.com/p/9b657c3c3560

https://www.jianshu.com/p/9b657c3c3560

adb如何打印kernel输出log

2016.06.13 20:23* 字数 198 阅读 2665 评论 1

Android内核的Log输出

Android内核是基于Linxu kernel的,因此其log机制也是通用的,在Android内核中使用printk函数进行Log输出。与c语言的printf类似,printk提供格式化输入功能,同时,它也具有所有LOG机制的特点--提供日志级别过虑功能。printk提供了8种日志级别(详细的定义在include/linux/kern_levels.h中):

  1. #ifndef __KERN_LEVELS_H__
  2. #define __KERN_LEVELS_H__
  3. #define KERN_SOH "\001" /* ASCII Start Of Header */
  4. #define KERN_SOH_ASCII '\001'
  5. #define KERN_EMERG KERN_SOH "0" /* system is unusable */
  6. #define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */
  7. #define KERN_CRIT KERN_SOH "2" /* critical conditions */
  8. #define KERN_ERR KERN_SOH "3" /* error conditions */
  9. #define KERN_WARNING KERN_SOH "4" /* warning conditions */
  10. #define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
  11. #define KERN_INFO KERN_SOH "6" /* informational */
  12. #define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
  13. #define KERN_DEFAULT KERN_SOH "d" /* the default kernel loglevel */
  14. /*
  15. * Annotation for a "continued" line of log printout (only done after a
  16. * line that had no enclosing \n). Only to be used by core/arch code
  17. * during early bootup (a continued line is not SMP-safe otherwise).
  18. */
  19. #define KERN_CONT ""
  20. #endif

printk的最简单的使用方法:

  1. //KERN_ALERT表示日志级别,后面紧跟着要格式化字符串。
  2. printk(KERN_ALERT "This is the log printed by printk in linux kernel space.");

printk的带格式化输出使用方法:

printk(KERN_ERR "%s: Invalid parameter\n", __func__);

adb connect情况下输出kernel打印信息

Android系统中,printk输出的日志信息保存在/proc/kmsg中,要查看/proc/kmsg的内容,只输入在命令行中输入如下命令

shell@rk3288_box:/ # cat  /proc/kmsg

输出结果如图

Paste_Image.png

小礼物走一走,来简书关注我





声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/762632
推荐阅读
相关标签
  

闽ICP备14008679号