printf工作起来和printf类似。
差别之一就是,通过附加不同日志级别(loglevel),或者说消息优先级,可以让printk根据这些级别的严重度对消息进行分类。
在头文件中定义了8种可用的日志级别字符串,下面以严重程序的降序来列出这些级别:
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
每个字符串(以宏的形式展开)表示一个尖括号的整数。整数值的范围为0-7.数值越大,优先级别越小。
根据日志级别,内核可能会把消息打印到当前控制台上。当优先级小于console_loglevel这个整数变量的值,消息才能
显示出来。
我们也可以通过对文本文件的访问来读取和修改控制台的日志级别
~]# cat /proc/sys/kernel/printk
6 4 1 7
这4个值的意思分别为:当前的日志级别,未明确指定日志级别时的默认消息级别,最小允许的日志级别以及引导时的默认
日志级别。向文件中写入单个整数值,即将会把当前日志级别修改为这个值
[root@localhost ~]# echo 8 > /proc/sys/kernel/printk
[root@localhost ~]# cat /proc/sys/kernel/printk
8 4 1 7
阅读(1171) | 评论(1) | 转发(0) |