linux日志级别的正确使用(printk)

本文详细介绍了Linux内核的日志级别控制机制,包括8级日志级别的定义及其作用,如EMERG、ALERT、CRIT等。同时,文章还讲解了如何通过不同的方法在启动时和运行时修改控制台的输出日志级别,如使用dmesg命令、proc接口及syslog系统调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.内核有严格的日志级别控制,他实际控制的是printk的输出以及对应内核驱动模块还有dev_dbg,dev_printk等函数的输出;我们可以通过proc接口来进行控制台输出我们需要的debug信息;内核日志级别有以下0-7共8级,数字越低级别越高:
     EMERG 0   ALERT 1  CRIT 2  ERR 3 WARNING 4 NOTICE 5 INFO 6 DEBUG 7
2. /proc/sys/kernel/printk
系统默认输出为:
    cat /proc/sys/kernel/printk
    4 4 1 7
4 4 1 7依次分别为:
控制台日志级别:优先级高于该值的消息将被打印至控制台(此设置表明,只有级别不低于4的日志会被输出,即只有0 1 2 3 4级别的日志会被输出
缺省的消息日志级别:将用该优先级来打印没有优先级的消息
最低的控制台日志级别:控制台日志级别可被设置的最小值(最高优先级)
缺省的控制台日志级别:控制台日志级别的缺省值
3.如何修改控制态输出:
改变console loglevel的方法有如下几种:
1)启动时Kernel boot option:loglevel=level(loglevel可以为EMERG ALERT CRIT ERR WARNING NOTICE INFO DEBUG同样宏数值高于level的才会被输出)
2)运行时Runtime: dmesg -n level(注意:demsg -n level 改变的是console上的loglevel,dmesg命令仍然会打印出所有级别的系统信息。)
3)运行时Runtime: echo $level > /proc/sys/kernel/printk
4)运行时Runtime:写程序使用syslog系统调用(可以man syslog)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值