分享好友 最新动态首页 最新动态分类 切换频道
ubuntu学习笔记(持续更新)
2024-12-29 05:58

printk()函数的总结

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

ubuntu学习笔记(持续更新)

printk(日志级别 "消息文本");这里的日志级别通俗的说指的是对文本信息的一种输出范围上的指定。
日志级别一共有8个级别,printk的日志级别定义如下(在linux26/includelinux/kernel.h中
#defineKERN_EMERG"<0>"
#defineKERN_ALERT"<1>"
#defineKERN_CRIT"<2>"
#defineKERN_ERR"<3>"
#defineKERN_WARNING"<4>"
#defineKERN_NOTICE"<5>"
#defineKERN_INFO"<6>"
#defineKERN_DEBUG"<7>"

没有指定日志级别的printk语句默认采用的级别是 DEFAULT_ MESSAGE_LOGLEVEL(这个默认级别一般为<4>,即与KERN_WARNING在一个级别上,其定义在linux26/kernel/printk.c中可以找到。
下面是一个比较简单的使用
printk(KERN_INFO "INFO ");  //这里可以使用数字代替 KERN_INFO,即可以写成printk(<6> "INFO ");  
在这个格式的定义中,日志级别和信息文本之间不能够使用逗号隔开,因为系统在进行编译的时候,将日志级别转换成字符串于后面的文本信息进行连接。

在对系统输出进行控制时,主要是讨论控制台和伪终端的输情况,以及系统日志等。

下面是控制台日志级别的一些简要的介绍
控制台相应的日志级别定义如下
#define MINIMUM_CONSOLE_LOGLEVEL  1   
#define DEFAULT_CONSOLE_LOGLEVEL  7

int console_printk[4] = {
DEFAULT_CONSOLE_LOGLEVEL,

DEFAULT_MESSAGE_LOGLEVEL,

MINIMUM_CONSOLE_LOGLEVEL,
DEFAULT_CONSOLE_LOGLEVEL,
};
在进行查看的时候,可以使用命令 cat /proc/sys/kernel/printk来查看这四个值
可以通过修改文件/proc/sys/kernel/printk中的第一个值来更改当前的控制台日志级别。

(声明:在下面的模块函数中控制台所使用的日志级别均为KERN_WARNING级别)当日志级别高于console_loglevel(控制台日志级别)时,消息才能在控制台显示出来。
假如我们写了一个如下的模块函数
1 #include <linux/init.h>
2 #include <linux/module.h>
3 MODULE_LICENSE("Dual BSD/GPL");
4 static int book_init(void)
5 {
6   printk(KERN_EMERG "EMERG ");
7   printk(KERN_ALERT "ALERT ");
8   printk(KERN_CRIT " CRIT ");
9   printk(KERN_ERR " ERR ");
10  printk(KERN_WARNING ""WARNING ");
11   printk(KERN_NOTICE "NOTICE ");
12  printk(KERN_INFO "INFO ");
13  printk(KERN_DEBUG "DEBUG ");
14  return 0;
    }
15static void book_exit(void)
16{
17  printk(KERN_ALERT "Book module exit ");
    }
18  module_init(book_init);
19  module_exit(book_exit);

在控制台(这里指的是虚拟终端  Ctrl+Alt+(F1~F6))加载模块以后,控制台给出的信息为
6~9行中要求输出的信息,我们在伪终端(如果对伪终端不是很清楚可以看相关的内容)上运行命令tail -n 10 /var/log/messages查看日志文件刚才得到的运行记录
可以发现messages中的值为KERN_WARNING级别之后所要求输出到信息值。而如果我们在文件syslog和kern-log中查看系统日志文件,一般情况下可以得到所有的输出信息

Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637057] INFO
Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637063] CRIT
Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637066] WARNING
Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637068] ERR
Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637069] ALERT
Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637070] EMERG
Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637071]  NOTICE 
Jul 18 11:44:19 xiyoulinux-desktop kernel: [16100.637072] DEBUG
(不过在有些机器上运行得到的结果并不是这样的
即一般情况下,syslog和kern.log两个文件中记录的内容从编程这个角度来看是基本一致的。
在目录/var/log/下有一下四个文件可以查看日志
syslog ,kern.log,messages ,DEBUG 。   
syslog和kern.log一般情况下可以得到所有的系统输出值,而messages得到的是比控制台日志级别低的输出值,DEBUG得到的仅仅是DEBUG级别的
输出值。
一般情况下,优先级高于控制台日志级别的消息将被打印到控制台。优先级低于控制台日志级别的消息将被打印到messages日志文件中,而在伪终端下不打印任何的信息。
我们在进行有关编程的时候,若使用到printk()这个函数,一般查看信息是在messages和虚拟终端下进行查看,而对于syslog和kern.log下是用来检验所有信息的输出情况。


最新文章
搜狗浏览器2025最新版 v14.6.1.1010
搜狗浏览器2025最新版分享,搜狗浏览器是一款手机极速浏览器,软件界面清爽简洁,内容丰富,上网流畅,文档提取、小说阅读、热门资讯一应俱全,欢迎下载使用~搜狗手机浏览器,依托搜狗人工智能、大数据处理等核心技术,提供丰富的内容资源和
谷歌日本整活:打造 QWERTY 键盘帽子,可以戴着打字
10 月 7 日消息,谷歌日本推出了一款创意十足的产品:Gboard 帽子。这是一顶不仅可以戴在头上,还可以用来在手机上打字的帽子。其灵感来源于物理键盘上的键盘帽,也就是印有字母的按键,Gboard 帽子的名字也是根据谷歌的虚拟 QWERTY 应用而
摄影师需要建立自己的独立网站吗
为何摄影师需要建立独立网站1. 作品展示的舞台   摄影师的作品集和摄影技巧是其立身之本,通过独立网站,摄影师可以系统地展示不同风格的作品和拍摄经历。   独立网站可以提供更多的展示空间和自由度,让摄影师能够更全面地展示自己的
漫蛙漫画页面免费入口在哪 漫蛙manwa漫画防走失登录入口
漫蛙漫画是一款漫画阅读类的软件,软件中收录了超多种类的漫画,而且这些漫画风格丰富,能满足用户的各种阅读需求,有些用户不知道漫蛙漫画入口在哪里,小编给大家带来了漫蛙漫画页面免费入口分享,有喜欢的用户快来看看吧。https://shike.
谷歌浏览器32位123.0.6312.59
谷歌浏览器是一款快速、安全且免费的网络浏览器,软件功能强大,其所具备的智能工具,不仅能够很好的满足用户对浏览器的要求,而且具有稳定性强,不易崩溃简洁、快速等特点,能让您在网络世界中得心应手地操作、创作和探索。1. 跨设备同步
外链优化策略与实操
seo常说的一句话就是“内容为王,外链为皇”,由此可见做外链的重要性。虽然现在外链对做百度优化来说没原来那么大的作用,但是对提高网站的收录还是有帮助的,下面分享一下常用的做外链的方法。   1、博客   
脑洞大开,AI“解锁”文旅新玩法
原标题:脑洞大开,AI“解锁”文旅新玩法来源:青岛宣传 天冷了,各地文旅又有了“创作”新灵感。前几天,地标建筑刚刚“套”上毛衣;这几天,它们又陆续“裹”上了羽绒服;一阵寒风袭来,有些干脆“冻”成了冰雕……自从拿到AI这把钥匙,
福州抖音SEO是什么?4招教你抖音SEO怎么做的?
  抖音SEO,已经存在很多年。它指的是抖音生态中通过被动搜索方式去获取客户。  但很多人对其一知半解,除了百度SEO用户除外。  如果你对抖音SEO感到迷惑,建议仔细阅读这篇文章。  一、抖音SEO是什么?  抖音SEO,是抖音搜索引
河南女排全胜晋级升降赛
本报讯(记者 陈凯)记者从河南省球类运动中心获悉,经过十四轮的激烈争夺,2024~2025赛季中国女子排球超级联赛第一阶段常规赛告一段落。最终,河南双汇女排以12战全胜积34分的战绩稳获B级第一名,与B级排名第二的浙江女排一道获得参加升降
汉字拼词游戏怎么过关?
1. 通过掌握汉字的读音和拼写规则,可以顺利过关汉字拼词游戏。2. 汉字拼词游戏的关卡设计通常会考察玩家对汉字的认识和拼写能力。要过关,首先需要明确每个汉字的正确读音和拼写方式。可以通过学习汉字的拼音和笔画顺序,以及积累常见的词
相关文章
推荐文章
发表评论
0评