KERN_EMERG是为了控制内核log输出级别

技术文章 4个月前 完美者
1,927 0

标签:控制   字符设备   console   default   system   stat   级别   信息   alert   

static int __init hello_init(void)
{
    printk(KERN_EMERG "[ KERN_EMERG ] Hello Module Init\n");
    printk( "[ default ] Hello Module Init\n");
    return 0;
}

KERN_EMERG是为了控制内核log输出级别,必须添加。

使用printk时,Linux内核根据日志级别,可能把消息打印到当前控制台上,这个控制台是一个字符设备。这些消息从终端输出的前提是日志输出级别小于console_loglevel。日志级别有八个:0-7(越小级别越高)

#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 */

查看控制台级别

>cat /proc/sys/kernel/printk
         4    4    1    7

其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息

分别对应控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别。

KERN_EMERG是为了控制内核log输出级别

标签:控制   字符设备   console   default   system   stat   级别   信息   alert   

原文地址:https://www.cnblogs.com/Rainingday/p/14289726.html

版权声明:完美者 发表于 2021-01-18 11:37:08。
转载请注明:KERN_EMERG是为了控制内核log输出级别 | 完美导航

暂无评论

暂无评论...