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

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)

你可能感兴趣的:(工具,linux)