printk的打印级别
来源:互联网 发布:php 字符串反转函数 编辑:程序博客网 时间:2024/05/22 06:29
转自http://blog.csdn.net/youxin2012/article/details/19563239
printk 为内核调试常用的打印函数,如同应用层开发常用的printf打印函数。
内核通过 printk() 输出的信息具有日志级别,日志级别是通过在 printk()输出的字符串前加一个带尖括号的整数来控制的,如 printk(KERN_ALERT "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符)就会在控制台上显示。
printk是“行驱动”的,也就是说只有收到一个换行符数据才会真正输出到终端,否则就不会有任何信息输出。
另如果我们使用printk过于频繁的话,会造成系统的性能下降甚至停止反应。
待续
- printk的打印级别
- 调整内核printk的打印级别
- 调整内核printk的打印级别
- 调整内核printk的打印级别
- 调整内核printk的打印级别
- 调整内核printk的打印级别
- 调整内核printk的打印级别
- 调整内核printk的打印级别
- 更改printk打印级别
- linux Printk打印级别
- 更改printk打印级别
- 更改printk打印级别
- printk打印级别
- 更改printk打印级别
- printk消息打印级别
- printk 打印级别
- printk打印级别
- 更改printk打印级别
- HDOJ 1728 逃离迷宫 (BFS )解题报告
- SQL 函数之 row_number() over()
- matplotlib 图中图显示
- opencv-3.1.0在Ubuntu系统上使用g++编译时出现“/usr/bin/ld: cannot find -lippicv ” 错误及其解决办法
- ubuntu16.4快速 安装tensorflow1.1.0
- printk的打印级别
- JS获取当前时间戳的方法
- csdn如何转载别人的文章
- MAVEN系列之二@编写POM.xml和讲解
- ubuntu 看视频问题
- Hadoop之MapReduce中的常见算法(笔记12)
- Java 面向对象的基础
- <xliff:g>标签介绍:
- Gulp 前端优化