printk打印级别

默认级别

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

分别是:控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别

举例

# echo 0 > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
0   4   1   7

在 kernel/printk.c 中定义

int console_printk[4] = {
    DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */
    DEFAULT_MESSAGE_LOGLEVEL, /* default_message_loglevel */
    MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */
    DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */
};

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 */
#define KERN_INFO    "<6>"   /*informational */
#define KERN_DEBUG   "<7>"   /*debug-level messages */

printk使用

printk(打印级别 "要打印的信息");

syslogd守护进程
/etc/syslog.conf中定义了一些列规则,fedora中的syslogd守护进程叫做rsyslogd,相应它的规则配置文件叫rsyslog.conf。其中有一行”#kern.* /dev/console“它的意思是把所有日志级别的内核log都输出到/dev/console即我们的终端,’#’去掉,重启即可

原文地址:https://www.cnblogs.com/zhangxuechao/p/11709829.html