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


最新文章
网站SEO优化教程,从入门到精通的实战指南,网站SEO优化全攻略,入门至精通实战手册,网站SEO优化实战手册,从入门到精通的全面指南
全面解析网站SEO优化之道,本教程从零基础出发,深入浅出地讲解从入门到精通的实战技巧,旨在帮助您有效提升网站在搜索引擎中的排名,更大化搜索引擎带来的流量。SEO(搜索引擎优化)是指运用一系列技术手段,提升网站在搜索引擎结果页面中
志说防城港 第3期 |:时代的风华与辉煌——防城港建港55年的巨变
///      援越期间,国务院总理周恩来作出“不论越南停战与否,防城港应即隐蔽扩建,限期完成”的批示,扩建防城港。1973年10月,防城港第一个万吨级泊位(1号泊位)开工,防城港深水万吨码头建设正式启动。1975年2月3日,国家计委同意
视频号小店商品上架技巧有哪些?如何有效展示商品?
视频号小店,这个新兴的电商舞台,让不少商家跃跃欲试。但面对这个新平台,上架商品和有效展示成了大家共同的挑战。别急,咱们一步步来,看看怎么在视频号小店大展拳脚。#### 准备阶段:资质先行首先,上架前得搞定资质申请,这是游戏规则
“安眠药成精”?一杯酸奶也能起到助眠的作用?
二、酸奶的益生菌作用酸奶中含有的益生菌,如乳酸菌和双歧杆菌,不仅对消化系统有益,更有研究显示它们对心理健康和睡眠质量也有积极影响。肠道与大脑之间存有密切联系,肠道健康直接影响情绪和心理状态。益生菌能够改善肠道微生态,促进身
海南实现部省系统互通数据共享业务协同突破
原标题:海南实现部省系统互通数据共享业务协同突破来源:海南日报“发现某某号船舶配员不符合最低安全配员要求,请交通运输部门对该船加强关注。”12月6日9时许,海南海事局“海巡03”执法船上,该局执法人员将上述水上交通安全违法线索输
深圳研学-深圳企业参访-走进商汤科技参观
2009年12月02日赵建飞50企业研学/游学活动,教育文化活动组织策划、文化艺术交流活动策划、游学交流活动策划;企业管理咨询、信息咨询;会务服务、展览服务;企业管理咨询;企业形象策划;会务策划及培训策划;企业管理培训;美术培训;展
超全面!wordpress后台控制面板的各项功能介绍
wordpress安装完,接下来就是开始使用wordpress,一灯之前已经介绍了新手错误,入门基础,WP术语词汇和FTP的使用,我想是时候介绍下wordpress的后台控制面板了。如果想要熟练使用wordprewss建设外贸网站,首先要知道wordpress后台控制面板
微信聊天记录删了怎样才能恢复 教你几招轻松找回
无论是出于误操作还是其他原因,删除微信聊天记录后,发现这些记录对你来说非常重要,都会感到十分困扰。幸运的是,通过一些方法和技巧,你可能能够找回这些宝贵的聊天记录。本文将详细介绍几种恢复微信聊天记录的方法,帮助你轻松找回这些
用js代码禁止用户复制粘贴
要想实现这一功能,需要考虑三个方向来入手: 1.禁止用户选中文本并复制。 2.禁止鼠标右键复制粘贴。 3.禁止使用快捷键(如 Ctrl + C、Ctrl + V)复制粘贴。 需要注意的是,完全禁止用户复制内容是
白山快速熔断器170M7978 1250V/2500A作用+2025排名一览
白山快速熔断器170M7978 1250V/2500A作用+2025排名一览 1. 产品概述 - WSK - S-(TH)智能温湿度控制器是一种能够对环境温湿度进行精确监测和控制的设备。它结合了先进的传感器技术和智能控制算法,用于维持环境温湿度在设定的范围内。2. 功
相关文章
推荐文章
发表评论
0评