1、printk
1)等级路径
include\linux\kern_levels.h
#define KERN_EMERG KERN_SOH "0" /* system is unusable */
#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */
#define KERN_CRIT KERN_SOH "2" /* critical conditions */
#define KERN_ERR KERN_SOH "3" /* error conditions */
#define KERN_WARNING KERN_SOH "4" /* warning conditions */
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
#define KERN_INFO KERN_SOH "6" /* informational */
#define KERN_DEBUG KERN_SOH "7" /* debug-level messages */
#define KERN_DEFAULT KERN_SOH "d" /* the default kernel loglevel */
0是最高等级,7是最低等级
2)用户接口
book@100ask:~$ cat /proc/sys/kernel/printk
4 4 1 7
四个数字的含义:
第一个数字:控制控制台消息的打印级别。当内核有消息要输出到控制台时,如果消息的级别小于等于这个数字,那么消息就会被打印出来。
第二个数字:控制默认控制台日志级别。对于没有指定特定级别的消息,默认会使用这个级别。
第三个数字:控制控制台消息的最小级别。任何消息级别小于这个数字的消息都会被忽略。
第四个数字:控制控制台消息的缓冲区大小,以页为单位。
3)用法例子
在内核代码中添加
printk(KERN_DEBUG "Debug message\n");
printk(KERN_INFO "Informational message\n");
printk(KERN_WARNING "Warning message\n");
printk(KERN_ERR "Error message\n");
4)查看打印信
book@100ask:~$ dmesg