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
”,这样在系统启动时,就打开了所有内核输出。
-
内核
+关注
关注
3文章
1372浏览量
40288 -
Linux
+关注
关注
87文章
11302浏览量
209431 -
系统
+关注
关注
1文章
1016浏览量
21338
发布评论请先 登录
相关推荐
评论