在 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!/n")或者printk(“<6>Hello!/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 xiao[] = "nishixiao"
printk(KERN_INFO "Hello %s!/n", xiao);

最新文章

  1. 使用C#给Linux写Shell脚本(下篇)
  2. 回溯法解决N皇后问题(以四皇后为例)
  3. Linux内存分配----SLAB
  4. [iOS Xcode8]上传AppStore无法添加构建版本
  5. 自己制作精美的App Store 软件截屏
  6. 转:Mysql读写分离实现的三种方式
  7. CSS3 设置 Table 隔行变色
  8. KnockOutJS学习系列----(一)
  9. java中关于SSL/TSL的介绍和如何实现SSL Socket双向认证
  10. Angular 小试牛刀[1]:Getting Started
  11. day19 python之re模块正则练习
  12. Java入门系列Java NIO
  13. python中,如何将多行进行输出,同时将行尾的换行符去掉
  14. 《转载》WIN10 64位系统 32位Python2.7 PIL安装
  15. 【jmeter】jmeter环境搭建
  16. php缓存类
  17. 熟练使用Linux进程管理类命令
  18. sharememory.c
  19. TP框架ajax U方法不解析怎么办?
  20. SQL Server窗口框架——ROWS、RANGE

热门文章

  1. 060 Permutation Sequence 排列序列
  2. [RDL]中多行组列组占比报表制作
  3. nginx错误Upstream timed out
  4. 语义分割丨PSPNet源码解析「测试阶段」
  5. [转]eclipse启动tomcat无法访问的解决方法
  6. Emacs中自动刷新dired缓冲区
  7. 今天测试发现qwebsocket有个bug
  8. 【复习笔记】CSS基础
  9. GreenDao 数据库升级 连接多个DB文件 或者指定不同的model&amp;dao目录
  10. vim的命令