printk 使用方法

原创 2013年12月02日 10:07:47

内核通过 printk() 输出的信息具有日志级别,日志级别是通过在 printk() 输出的字符串前加一个带尖括号的整数来控制的,如 printk("<6>Hello, world!/n");。内核中共提供了八种不同的日志级别,在 linux/kernel.h 中有相应的宏对应。

#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(KERN_INFO "Hello, world!/n");。

未指定日志级别的 printk() 采用的默认级别是 DEFAULT_MESSAGE_LOGLEVEL,这个宏在 kernel/printk.c 中被定义为整数 4,即对应KERN_WARNING。

在 /proc/sys/kernel/printk 会显示4个数值(可由 echo 修改),分别表示当前控制台日志级别、未明确指定日志级别的默认消息日志级别、最小(最高)允许设置的控制台日志级别、引导时默认的日志级别。当 printk() 中的消息日志级别小于当前控制台日志级别时,printk 的信息(要有/n符)就会在控制台上显示。但无论当前控制台日志级别是何值,通过 /proc/kmsg (或使用dmesg)总能查看。另外如果配置好并运行了 syslogd 或 klogd,没有在控制台上显示的 printk 的信息也会追加到 /var/log/messages.log 中。

char myname[] = "chinacodec/n";
printk(KERN_INFO "Hello, world %s!/n", myname);

early_printk使用方法

(一)知识背景: [color=Red]Uncompressing Linux... done, booting the kernel. ------------setup_a...

printk打印不能显示到终端的解决方法

printk与printf有个不同的地方,就是printk有打印级别 使用printk时,Linux内核根据日志级别,可能把消息打印到当前控制台上,这个控制台是一个字符设备。这些消息从终端输出的前提是...

linux下关闭printk打印信息以及通过网络查看方法

我们在linux底层驱动或者kernel中调用的printk函数其作用是将printk的内容输出到控制台,但printk实质是将需要输出的内容写入底层环形输出数据缓冲区,linux根据控制将数据输出到...

用函数printk打印内核信息的方法

Linux内核用函数printk打印调试信息,该函数的用法与C库打印函数printf格式类似,但在内核使用。用户可在内核代码中的某位置加入函数printk,直接把所关心的信息打打印到屏幕上或日志文件中...
  • emalwb
  • emalwb
  • 2014年02月27日 13:30
  • 1034

printk()调试信息分级显示脚本的编写方法

printk()调试信息分级显示脚本的编写方法        大家都知道,在编写内核程序时printk()在中定义了一些用于调试的宏,它们是:    KERN_EMERG "" 系统不可用   ...
  • yyp872
  • yyp872
  • 2013年06月06日 18:48
  • 570

使用printk调试kernel

printk(KERN_ERR "\n\nfile: %s \t line = %d\t function: %s\n", __FILE__, __LINE__, __func__); printk...

WPF的Expander控件使用方法

  • 2017年10月29日 19:27
  • 55KB
  • 下载

最新gradle-4.1-all.zip以及使用方法

  • 2017年11月01日 15:11
  • 85.9MB
  • 下载

printk()函数的使用详解

printk()函数的总结我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况。对程序的调试起到了很重要的作用。(下文中的日志级...

tftp使用方法

  • 2017年10月27日 22:03
  • 13KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:printk 使用方法
举报原因:
原因补充:

(最多只允许输入30个字)