printk _dmesg 打印显示等级

Linux内核之 printk 打印 Linux 内核之 printk 打印 阅读详情

要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来

Linux命令:dmesg  功能说明:显示开机信息。

  语 法:dmesg [-cn][-s <缓冲区大小>]

  补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。

  参 数:

  -c 显示信息後,清除ring buffer中的内容。

  -s<缓冲区大小> 预设置为8196,刚好等于ring buffer的大小。

  -n 设置记录信息的层级。

printk() 使用说明
内核通过 printk() 输出的信息具有日志级别,日志级别是通过在 printk() 输出的字符串前加一个带尖括号的整数来控制的,如 printk("<6>Hello, world! ");。内核中共提供了八种不同的日志级别,在 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 */ 
#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 */ 
/*     KERN_EMERG 用于紧急事件,一般是系统崩溃前的提示信息
       KERN_ALERT 用于需要立即采取动作的场合
       KERN_CRIT 临界状态,通常设计验证的硬件或软件操作失败
       KERN_ERR 用于报告错误状态.设备驱动程序通常会用它报告来自硬件的问题
       KERN_WARNING 就可能出现的问题提出警告.这些问题通常不会对系统造成严重破坏
       KERN_NOTICE 有必要提示的正常情况.许多安全相关的情况用这个级别汇报
       KERN_INFO 提示性信息.有很多驱动程序在启动时用这个级别打印相关信息
       KERN_DEBUG 用于调试的信息
*/

所以 printk() 可以这样用:printk(KERN_INFO "Hello, world! ");。

未指定日志级别的 printk() 采用的默认级别是 DEFAULT_MESSAGE_LOGLEVEL,这个宏在 kernel/printk.c 中被定义为整数 4,即对应KERN_WARNING。

在 /proc/sys/kernel/printk 会显示4个数值(可由 echo 修改),分别表示当前控制台日志级别、未明确指定日志级别的默认消息日志级别、最小(最高)允许设置的控制台日志级别、引导时默认的日志级别。当 printk() 中的消息日志级别小于当前控制台日志级别时,printk 的信息(要有符)就会在控制台上显示。但无论当前控制台日志级别是何值,通过 /proc/kmsg (或使用dmesg)总能查看。另外如果配置好并运行了 syslogd 或 klogd,没有在控制台上显示的 printk 的信息也会追加到 /var/log/messages.log 中。

通过读写/proc/sys/kernel/printk文件可读取和修改控制台的日志级别。查看这个文件的方法如下:


#cat /proc/sys/kernel/printk
6   4  1   7
 


上面显示的4个数据分别对应控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别。

可用下面的命令设置当前日志级别:

# echo 8 > /proc/sys/kernel/printk



如何让 printk 打印到终端 讲述 如何让 printk 打印到终端 阅读详情

相关推荐

printk打印级别输出

内核的打印函数和用户空间的打印函数是相同的,只是关键字不太一样,内核是printk,而用户空间则是printf。 在内核空间只不过有一个打印级别的设置,所谓的打印级别不过是几个宏定义 printk的打印级别一共有8个级别:数字越小说明打印级别越高 #define KERN_EMERG        "" /* system is unusable */ #define KERN_ALERT

linux 5638

printk函数

Linux 内核中没有 printf 这个函数,在Linux内核中使用printk来显示要打印的字符串,也可以这样说,printf运行在用户态, printk 运行在内核态。printk用法与printf相似,唯一不同之处是printk 可以根据日志级别对消息进行分类,也就是说printk具有打印级别。数字越小级别越高,即“0”级别最高,“7”的级别最低。制printk的内容是否在终端上打印出来,printk函数的打印级别称为。第三个:最小控制台日志级别,控制台日志级别可被设置的最小值(最高优先级)...

weixin_63546333的博客 2800

Printk打印内核日志

Android 系统 printk 打印内核日志

C安君的博客 2512

printk打印等级

如果没有指定消息的级别,printk()会使用默认的DEFAULT_MESSAGE_LOGLEVEL(通常是KERN_WARNING)2> 默认日志优先级级别:将用该优先级打印没有制定优先级的打印信息,例如printk没有加入优先级信息。cat /proc/sys/kernel/printk可以查询当前系统printk打印信息。1> 控制台日志级别(一般是串口):高于该优先级的会输出到控制台。3> 最低的控制台日志级别:控制台日志级别可以被设置的。4> 默认的控制台日志级别:控制台默认的日志优先级级别。

mantouyouyou的博客 1308

printk调试信息无法打印到控制台

原因分析 一般这种情况出现在发行版Linux(如Ubuntu/Centos)驱动开发中,出现这个问题的原因是:printk默认的输出设备是/dev/console,而这个设备只能在内核中访问。我们用户使用的控制台,也叫终端,对应到的是/dev/tty*。 你可以通过tty命令来查看当前使用的是哪个终端设备,可以通过echo "hello"> /dev/tty*来查看这个终端设备的打印作用。 ...

星留影的刹那间 2224

RK3568平台 (调试篇)内核printk打印级别

test[]:打印到控制台的字符串缓存区:根据控制台等级先存放于cont.buf,调用console_unlock将cont.buf拷贝到test[],最后调用底层终端设备write函数打印。__log_buf:内核日志缓冲区,包括等级低无法打印到控制台的日志。

weixin_49303682的博客 2150

Linux驱动交叉编译把驱动文件放入开发板,以及printk函数打印级别

Linux驱动交叉编译把驱动文件放入开发板,以及printk函数打印级别 交叉编译的介绍 printk函数介绍

qq_53221728的博客 1801

从Wi-Fi到蓝牙:手把手教你用Cadence Virtuoso搭建一个2.4GHz锁相环频率综合器(含PFD/CP/VCO模块设计)

本文详细介绍了如何在Cadence Virtuoso中设计一个2.4GHz锁相环频率综合器(PLL),涵盖从系统架构到模块级设计的全流程。重点解析了PFD、CP和VCO等核心模块的设计技巧与仿真验证方法,帮助模拟集成电路设计师掌握高频PLL的实现要点,满足Wi-Fi和蓝牙等无线通信标准的要求。

weixin_30315723的博客 418

linux内核调试和性能优化

Linux内核调试和性能优化

个人学习记录 4500

5分钟搞定三网话费余额查询:手把手教你用PHP+HTML搭建查询系统(含API调用避坑指南)

本文详细介绍了如何使用PHP+HTML快速搭建三网话费余额查询系统,涵盖API调用避坑指南、前端UI设计及性能优化。通过统一处理移动、电信、联通三大运营商接口差异,实现高可用查询功能,并提供安全防护与生产部署建议,帮助开发者高效构建稳定可靠的话费查询工具。

weixin_29016833的博客 259

内网环境下 OpenSSL 与 OpenSSH 安全升级实战指南:从 9.9p2 离线部署到回滚方案

本文详细介绍了内网环境下OpenSSL与OpenSSH的安全升级实战指南,重点涵盖从9.9p2版本离线部署到回滚方案的全流程。通过备份策略、动态库处理、权限修复等关键步骤,确保升级过程安全可靠,特别适合金融、政务等敏感行业的内网服务器安全加固。

weixin_30566063的博客 511

linux内核日志打印:printk和dmesg的用法

转自:https://blog.youkuaiyun.com/qq_29350001/article/details/52232128 用于检测和控制内核环缓冲。程序用来助用户了解系统的启动信息 Linux命令dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中 开机信息保存在/var/log目录中名称为dmesg的文件里 dmesg [ -c ] [ -n 级别 ] ...

xuhao07的博客 1万+

ESP32S3学习——i2c,点亮0.96寸oled

ESP32S3学习——i2c,点亮0.96寸oled

HandBAI的博客 1万+

内核打印调试printk学习笔记

内核打印调试printk学习笔记Printk打印格式与打印等级打印数据打印等级日志级别(loglevel)修改控制台打印等级控制台、终端和串口之间的关系终端(terminal)与控制台(console)控制台与串口嵌入式平台下的console查看和重映射伪终端 Printk打印格式与打印等级 打印数据 打印数据格式(跟printf类似、不支持浮点型) 打印指针 %p:打印指针地址 %pF:打印函数指针的函数名和偏移地址 %pf:只打印函数指针的函数名,不打印偏移地址 …

雪夜的博客 3086

2-6-1-1 QNX编程入门之进程和线程(一)

文章围绕进程和线程展开介绍。先是将进程类比为房子,线程类比为居住者,阐述其基本概念,如进程占用内存,线程可共享内存。接着讲解同步相关内容,介绍了互斥,线程通过互斥锁来控制对特定资源的访问,像使用浴室一样。还提到优先级,线程按优先级和等待时长来决定获取资源顺序。此外,说明了信号量,以厨房为例,区分计数为 1 和大于 1 的信号情况,且指出信号量可当互斥锁用,但互斥锁是特殊用途信号量,二者存在区别,最后提及后续会介绍其他同步机制。

星原飞火的博客 1323

RS-485调试踩坑实录:MAX13487数据回环问题排查与修复(附电路图)

本文深入解析了RS-485通信中MAX13487芯片的数据回环问题,提供了详细的排查过程和解决方案。通过分析芯片特性和自动换向机制,揭示了RO引脚配置不当是导致问题的关键原因,并给出硬件(添加上拉电阻)和软件(调整MCU配置)两种修复方案,附有优化设计建议和实际调试技巧。

play7的博客 1297

Linux kernel:修改内核 printk 日志等级

Linux kernel:修改内核 printk 日志等级设定

qq_34597963的博客 1万+

爬取国家统计局最近10年年度数据

一、编码流程 1.目标网址:https://data.stats.gov.cn/easyquery.htm?cn=C01 2.编码思路: (1) 解析左侧指标树,实现4级标签定位 (难点:层层嵌套,下一级指标的xpath路径以上一级指标为基础;不是所有二级指标都含有三和四级指标,需要进行判断) (2) 使用selenium webdriver 点选指标,加载出右侧表格数据 (难点:当指标无法在全局页面显示时,需向下拖动滚动条) (3) 解析右侧数据,实现数据存储 3.使用模块: (1) selenium:解

weixin_39645690的博客 4557

Linux内核调试 | printk的使用

你会看到loglevel=x,修改的是控制台串口日志打印等级,但是实际在开发板系统上的bootargs添加loglevel参数,cat /proc/sys/kernel/printk节点参数是不行的,不知道为啥有知道的大佬可以留言。讲几篇常用内核驱动调试的方法,先从我最常用的printk的使用方法开始讲起, printk在内核源码中用来记录日志信息的函数,方便我们调试追踪代码,只能在内核源码范围内使用。本篇我们学会了四种控制日志级别的设置以及常用的使用方法,如有疑问,可以评论区留言,支持的话一键三连!

weixin_44458100的博客 1249

Kile5报错—> ARM-Compiler ‘Default Compiler Version 5‘ which is not available安装使用Compiler Version 5 的办法

Kile5报错—> ARM-Compiler ‘Default Compiler Version 5‘ which is not available安装使用Compiler Version 5 的办法

weixin_72050316的博客 1179

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Linux驱动编程 - printk内核打印

Linux内核printk打印笔记

hinewcc的博客 2882

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

嵌入式驱动学习第二周——Linux内核打印

本篇文章主要是记录linux内核打印,dmesg命令使用与printk函数介绍

qq_43419761的博客 2437

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

printk 内核打印

printk 在内核源码中用来记录日志信息的函数,只能在内核源码范围内使用,用法类似于 printf 函数。 printk 函数主要做两件事情: 将信息记录到 log 中; 调用控制台驱动来将信息输出。 printk 介绍 printk 将内核信息输出到内核信息缓冲区中,内核缓冲区在 kernel/printk/printk.c 中定义: static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN); 内核信息缓冲区是一个环形缓冲区(Ring Bu

程序员「阿基米东」的编程之旅 6653

Linux查看dmesg日志,Linux中的Printk与dmesg功能

要将linux内核的带级别控制的printk内容打印出来,在命令行输入 dmesg -n 8 就将所有级别的信息都打印出来。Linux命令:dmesg  功能说明:显示开机信息。语 法:dmesg [-cn][-s ]补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里...

weixin_36400512的博客 2904

linux内核打印数据到串口控制台,printk数据不打印问题

1、查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4 4 1 7 其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息 2、修改打印 echo "新的打印级别 4 1 7" >/proc/sys/kernel/printk 3、不够打印级别的信息会被写到日志中可通过dmesg 命令来查看 4、printk的打印级别 #define KERN_EMERG...

乐于分享 2385

打印调试技术 printk klogd dmesg

转自:http://blog.chinaunix.net/u/19573/showart_1854571.html4.2.1. printk#include printk(KERN_CRIT"error %s,%i",__FILE__,__LINE__);注:1). printk函数中能够指定优先级,假如printk没有指定优先级,采用默

cnctloveyu的专栏 5657
上一篇: mtdparts_uboot分区
下一篇: linux各种重启命令 及STi7105不能重启原因分析
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值