printk 使用方法
内核通过 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);
printk 使用方法相关推荐
- Printk打印内核日志
一.背景 Linux 内核中提供了内核日志打印的工具printk.它的使用方式C语言中的printf是类似的.接下来我们介绍一下printk的使用方式.本文以打印Binder中的日志为例,进行演示. ...
- linux内核编程笔记【原创】
以下为本人学习笔记,如有转载请注明出处,谢谢 1. service用法 oneshot DEFINE_MUTEX(buzzer_mutex); mutex_lock(&buzzer_mutex ...
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群
作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...
- Java面试题大全2021版
一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...
- linux 内核printk 打印信息查询方法
方法1.直接在终端查询日志 cat /var/log/messages 方法2.直接在一个终端执行 cat /proc/kmsg 然后打开另一个终端,动态加载驱动,在上一个终端中就能看到驱动中prin ...
- printk在应用层的设置方式及读取内核打印信息的方法
如果 printk 中没有加调试级别,则使用默认的调试级别.注意,调试级别和格式化字符串之间没有逗号.当前控制台的各打印级别可以通过下面的命令来查看. # cat /proc/sys/kernel/p ...
- printk打印不能显示到终端的解决方法
printk与printf有个不同的地方,就是printk有打印级别 使用printk时,Linux内核根据日志级别,可能把消息打印到当前控制台上,这个控制台是一个字符设备.这些消息从终端输出的前提是 ...
- linux printk 时间戳,linux – kern.log中“00:00:00”时间戳的含义是什么?
我正在寻找kern.log中特定问题的原因.有许多条目的00:00:00时间戳: Jun 11 00:00:00 mymachine kernel: [ 0.000000] Initializing ...
- Linux查看dmesg日志,Linux中的Printk与dmesg功能
要将linux内核的带级别控制的printk内容打印出来,在命令行输入 dmesg -n 8 就将所有级别的信息都打印出来. Linux命令:dmesg 功能说明:显示开机信息. 语 法:dmesg ...
最新文章
- sae python连接mysql_SAE Tornado 应用连接并使用 Mysql
- spring中Validation设计与实现
- 武汉锅检所检测机器人_嵊州市管道cctv机器人-检测服务,武汉天仪ty333,诚信承诺...
- 一次性配置VS2015属性的方法,新工程无需重新配置
- IT行业分析之企业信息化技术
- 无服务器架构 - 从使用场景分析其6大特性
- 在Outlook 2007中查看您的Google日历
- 说说mysql_说说MySQL权限 - andyqian的个人空间 - OSCHINA - 中文开源技术交流社区
- JavaScript中的原型继承原理
- 字符串的最长不重复字串
- 苏宁易购上半年营收936.06亿元,零售云加盟店新开1381家
- Linux命令:find命令
- 如何使用Wondershare UniConverter应用效果并调整音量
- matlab lu分解求线性方程组_线性代数10——矩阵的LU分解
- WIFI抓包实战篇——使用Kali 同时抓取多个智能家居数据包
- 【Python游戏】Python各大游戏合集:超级玛丽、天天酷跑、我的世界、魔塔、雷霆战机 | 附带源码
- 平行实境游戏设计——《家务战争》初稿
- TWS耳机供应链,看看背后都有谁?
- 【BZOJ】3993: [SDOI2015]星际战争
- Jmeter-添加PerfMon (Servers Performance Monitoring),报错解决办法
热门文章
- 2022年,或许是未来10年经济最好的一年,2022年你毕业了吗?毕业后是怎么计划的?
- java的actionlistener_Java:ActionListener接口
- 斯蒂芬·沃尔夫勒姆:宇宙的本质是计算
- 基于微信小程序的旅游社微信小程序
- 读书笔记--Fedex联邦快递,使命必达的力量
- 手机wifi延迟测试软件,如何测试无线投屏延时值?同屏延时怎么测? 四画面延时多少?同屏延时 传屏器延时 电脑投屏...
- 注意了!谷歌搜索新规定,对只有PC版本的网页将不再收录
- 计算机房设备搬迁协议,机房设备搬迁服务合同.doc
- 代码太长看不懂怎么办
- 【大局观】 NO.4 “加速时代”中怎样成为一个全球化人才?