当前位置: 首页 > news >正文

linux printk函数学习

printk与printf的区别在于:
printk运行在kernel space,而printf运行在user space。
所以kernel打印log使用printk,而应用程序打印log使用printf。

在printk.h中定义了8个级别的log level,
#define KERN_EMERG "<0>"
#define KERN_ALERT "<1>"
#define KERN_CRIT "<2>"
#define KERN_ERR "<3>"
#define KERN_WARNING "<4>"
#define KERN_NOTICE "<5>"
#define KERN_INFO "<6>"
#define KERN_DEBUG "<7>"

通过如下命令,可以查看系统当前设定的printk log level。
从结果中我们看到,系统当前设定的log level为0,所以不会
打印任何log到console上。
sh-# cat /proc/sys/kernel/printk
0 4 1 7

此时要查看系统打印的log的话,有两种方法:
1. 使用dmesg命令将ring buffer中的内容保存起来;
sh-# dmesg > /tmp_fs/dmesg.txt
2. 将/proc/kmsg里面的内容保存起来
sh-# cat /proc/kmsg > /tmp_fs/dmesg.txt
有了上面这两种办法,再也不会因为一不小心没有保存控制台上的log而烦恼了。

那printk level应该如何设定呢?这里有两种办法:
1. 使用dmesg命令进行设定,
sh-# cat /proc/sys/kernel/printk
0 4 1 7
sh-# dmesg -n 7
sh-# cat /proc/sys/kernel/printk
7 4 1 7
2. 直接更改printk配置文件,
sh-# echo 1 > /proc/sys/kernel/printk
sh-# cat /proc/sys/kernel/printk
1 4 1 7

因为linux系统过程中会打印较多的系统log,所以一定要在系统启动前就设定好printk level。

刚通过实验验证了,printk level只会影响到kernel log是否输出到控制台上;
但是无论printk level如何,kernel log都会保存到ring buffer中。

问题:
将printk level设定为KERN_DEBUG,这样开机过程中会输出大量的log,
会不会影响到系统开机性能呢?
需要通过实验进行验证。

相关文章:

  • HDU 3262 Seat taking up is tough (模拟搜索)
  • 2014各大网络公司校招笔试算法题(收集并更新中)
  • erlang mnesia 数据库查询
  • HDU 3264 Open-air shopping malls (计算几何-圆相交面积)
  • 2014Microsoft 校招笔试真题(找工作的虾米们赶紧做题晒答案喽)
  • 黑马程序员_IO流基本操作(Writer,Reader)
  • aptana 插件离线下载方式
  • Eclipse安装aptana 插件的方法
  • VC写的双人版俄罗斯方块
  • 2014百度校招笔试题之动态链接库静态链接库详解
  • centos 安装与操作
  • win7 防火墙开启ping
  • 人人网2014笔试算法题汇总
  • 暴风影音2014笔试算法题汇总
  • 华为2014笔试算法题汇总
  • [deviceone开发]-do_Webview的基本示例
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 78. Subsets
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • C++类中的特殊成员函数
  • input实现文字超出省略号功能
  • JavaScript设计模式系列一:工厂模式
  • Java精华积累:初学者都应该搞懂的问题
  • Linux快速复制或删除大量小文件
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Rancher如何对接Ceph-RBD块存储
  • React+TypeScript入门
  • React-flux杂记
  • Spring Cloud中负载均衡器概览
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 转载:[译] 内容加速黑科技趣谈
  • 阿里云移动端播放器高级功能介绍
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #1015 : KMP算法
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (007)XHTML文档之标题——h1~h6
  • (11)MSP430F5529 定时器B
  • (javascript)再说document.body.scrollTop的使用问题
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)计算机毕业设计高校学生选课系统
  • (蓝桥杯每日一题)love
  • (三)终结任务
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***监测系统的构建(chkrootkit )
  • .md即markdown文件的基本常用编写语法
  • .NET轻量级ORM组件Dapper葵花宝典
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @ModelAttribute使用详解
  • @Responsebody与@RequestBody
  • @RestControllerAdvice异常统一处理类失效原因
  • [2016.7.Test1] T1 三进制异或
  • [Android] 修改设备访问权限