printk等级
路径:include/linux/kern_levels.h
#define KERN_EMERG KERN_SOH "0" /* 最高输出等级,系统可能处于不可用的状态 */
#define KERN_ALERT KERN_SOH "1" /* 紧急和理科需要处理的输出 */
#define KERN_CRIT KERN_SOH "2" /* 紧急情况 */
#define KERN_ERR KERN_SOH "3" /* 发生错误的情况 */
#define KERN_WARNING KERN_SOH "4" /* 警告 */
#define KERN_NOTICE KERN_SOH "5" /* 重要的提示 */
#define KERN_INFO KERN_SOH "6" /* 提示信息 */
#define KERN_DEBUG KERN_SOH "7" /* 调试输出 */
Linux内核为printk定义了8个输出等级,KERN_EMERG等级最高,KERN_DEBUG等级最低。在配置内核时,由一个宏来设置系统默认的输出等级CONFIG_MESSAGE_LOGLEVEL_DEFAULT,通常这个默认输出等级为4,因此只有输出等级高于4时才会输出到终端或者串口,即只有KERN_EMERG~KERN_ERR满足这个条件。
通常在产品开发阶段,会把系统默认等级设置为最低,以便在开发测试阶段可以暴露更多的问题和调试信息,在发布产品时再把输出等级设置为0或者4 。
修改printk等级
# cat /proc/sys/kernel/printk //printk默认有4个等级
7 4 1 7
四个数字分表代表:
控制台输出等级
默认消息等级
最低输出等级
默认控制台输出等级
在系统运行时,我们也可以修改系统的输出等级。打开所有的内核输出:
echo 8 > /proc/sys/kernel/printk //打开所有的内核输出
另外,还可以通过在启动内核时传递commandline给内核的方法来修改系统默认的输出等级。例如,使用uboot引导内核时,可以在uboot传参的bootargs参数上,加上“loglevel=8”,这样在系统启动时,就打开了所有内核输出。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
内核
+关注
关注
4文章
1479浏览量
43140 -
Linux
+关注
关注
88文章
11854浏览量
219824 -
系统
+关注
关注
1文章
1048浏览量
22439
发布评论请先 登录
相关推荐
热点推荐
Linux内核学习笔记:动态输出调试
上篇说到printk调试,但printk是全局的,只能设置输出等级。而动态输出可以动态选择打开某个内核子系统的输出,可以有选择性地打开某些模块的输出。
发表于 06-01 15:16
•1208次阅读
Linux内核3.5开发,一起了解一下
的优点1.用户可以随时扩展Linux系统的功能。2.当要修改当前Linux系统的驱动时,只需要卸载旧模块,编译目标驱动模块,重新安装插入即可。3.系统中如果需要使用新模块,不必重新编译
发表于 10-05 20:36
linux内核打印函数printk的方法
1.linux内核打印函数printk一、函数有头文件二、定义的关键宏三、函数原型合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个
发表于 12-20 07:02
迅为RK3399开发板Android 系统--打印级别设置(printk日志等级设置)
在内核源码 include/linux/kern_levels.h 文件中预定义了内核 log 等级,一共有八个
发表于 10-25 11:21
Linux内核模块介绍,使用Linux模块的优点
内核通过 printk() 输出的信息具有日志级别,日志级别是通过在 printk() 输出的字符串前加一个带尖括号的整数来控制的,如 printk("Hello, world!/n"
如何配置和使用Linux内核printk功能
了解如何配置和使用Linux内核printk功能,包括其动态调试功能。
这样可以选择性地打印调试消息,而无需重新编译内核。
你知道Linux内核调试关键技术之一的printk?
在内核调试技术之中,最简单的就是printk的使用了,它的用法和C语言应用程序中的printf使用类似,在应用程序中依靠的是stdio.h中
发表于 05-10 11:18
•1963次阅读
Linux中的Printk与dmesg功能
要将linux内核的带级别控制的printk内容打印出来,在命令行输入 dmesg -n 8 就将所有级别的信息都打印出来。Linux命令:dmesg 功能说明:显示
发表于 04-02 14:39
•668次阅读
Linux内核pr_xx()函数封装
pr_xx( )封装 在使用printk的时候需要手动添加输出等级KERN_INFO、KERN_WARNING等,这样还是有些麻烦。因此,Linux内核也对
Linux内核日志玩明白了吗?printk调试神器全解析
前言:做Linux驱动开发或内核调试的朋友,一定对printk不陌生,但你真的会用它吗?为什么同样是调试RK3588内核,别人能精准捕捉关键错误,你却被海量日志淹没?今天就带大家吃透
Linux内核中如何修改printk等级
评论