Linux printk的日志级别和pr_debug

1. 查看日志级别

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

  四个数值分别表示。

  • 控制台日志级别
  • 默认消息日志级别(未明确指定日志级别的消息)
  • 最小控制台日志级别
  • 默认控制台日志级别

  日志级别的定义在include/linux/kern_levels.h。数值越小,级别越高。当printk的日志级别高于控制台日志级别时,控制台打印日志。

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

2. 控制台打印所有级别日志

# echo 8 4 1 7 > /proc/sys/kernel/printk

3. 查看所有级别日志

  除了将日志打印在控制台,还可以通过dmesg命令查看所有级别日志。如果系统配置好了syslogd或klogd,还可以通过/var/log/messages查看所有级别日志。

4. 使能pr_debug

  使能pr_debug可以通过在对应Makefile中增加如下语句实现。

EXTRA_CFLAGS += -DDEBUG

 

posted @ 2020-05-12 15:01  yanceylu  阅读(1387)  评论(0编辑  收藏  举报