分享好友 最新动态首页 最新动态分类 切换频道
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下是用来检验所有信息的输出情况。


最新文章
恐怖躲猫猫二破解版最新版:恐怖躲猫猫二破解版最新版解密指南
恐怖躲猫猫二破解版最新版:恐怖躲猫猫二破解版最新版解密指南恐怖躲猫猫二是一款备受玩家喜爱的恐怖求生游戏,其中的谜团和机关设计让许多玩家犯难。如果您正在寻找恐怖躲猫猫二破解版最新版的解密指南,那么您来对地方了。本文将为您揭秘
智能游戏体验的新篇章
随着科技的发展,人工智能在各个领域的应用越来越广泛,特别是游戏行业,它作为人们休闲娱乐的重要组成部分,也逐渐引入了智能机器人的技术,阿里巴巴旗下的阿里云与国内知名游戏网站4399联合推出了一款名为“智能机器人助手”的新型产品,
百度蜘蛛池教程,打造高效网站流量与排名,百度蜘蛛池教程视频
百度蜘蛛池是一种通过集中多个网站链接,吸引百度蜘蛛(搜索引擎爬虫)访问,从而提升网站流量和排名的策略。该教程视频详细介绍了如何创建和管理百度蜘蛛池,包括选择合适的网站、优化链接结构、定期更新内容等关键步骤。通过实施该教程,
谁说做百度网站优化seo就是刷排名的
SEO的核心要义SEO,即搜索引擎优化,其核心目的在于提升网站在搜索引擎中的自然排名,从而获得更多的潜在用户点击。这需要综合运用各种策略与技巧,包括但不限于关键词优化、内容质量提升、网站结构调整、外部链接建设等。刷排名虽然可能在
这6款论文工具网站能让你轻松完成写作吗?
写论文真是让人又爱又恨,熬夜泡在一堆书里,看屏幕上闪个不停的光标,是不是感觉脑子都快成浆糊了?想更高效地完成写作,可以试试这6个“救命稻草”——论文工具网站。它们能帮助思路不再卡壳,灵感不断涌现。不管找资料、排版格式还是管
公众号引流推广_公众号引流推广代理
实体店引流的3大线上渠道总结与策略整理现在越来越多的线下门店开始从互联网做流量了。但大盘的小红书、视频号直播和大众点评这种,怎么做呢?我们来看看作者的经验今天想结合是什么。 大众点评很重要。我认为,大众点评是线上引流到店的最
简单公司产品介绍专题WordPress模板(含手机站)
简单公司产品介绍专题wordpress主题简单的公司产品介绍专题Wordpress模板(含手机站)页面干净整洁,整体简单,几乎适合所有简单的公司产品介绍专题Wordpress模板(含手机站)网站使用,各种简单的公司产品介绍专题Wordpress模板(含手机站
一键生成超级美女写真,AI绘画工具大评测!
最后一款要介绍的工具是“Runway ML”,这是一个综合性平台,它结合了视频生成与图片生成的功能。Runway ML提供各种各样的AI工具,用户可以Mythical Creatures、Artistic Data、Neural Voice等来生成符合自己需求的作品,使用灵活性极高。
高清美女写真一键生成!超简单AI绘画工具评测及教程来啦!
那么,使用搜狐简单AI生成美女写真的步骤是什么?接下来,跟着我来一步一步操作吧!步骤1:访问搜狐简单AI首先,打开你的浏览器,搜索“搜狐简单AI”。在搜索结果中选择官方链接进入。确保你进入的是官方网站,以保证安全。步骤2:选择生成
程序员用AI来写AI代码,“卷死”其他程序员?
邮箱|hongyuhan@pingwest.com用AI算法帮程序员写AI算法?或许不少程序员“你已经是一个成熟的AI了,该学会自己补全代码了”的心愿就要实现。Copilot虽然强大,但就和大部分人工智能工具一样,它仍是建立在OpenAI Codex算法的基础上,需要
相关文章
推荐文章
发表评论
0评