如何屏蔽LOGD\LOGI等打印输出

修改linux内核输出所有的log信息 【代码】修改linux内核输出所有的log信息。 阅读详情

今天被打印信息的去除困扰了,想了想,如果靠一个一个的改动未免太繁琐。因此就仔细的看了下这部分的打印原理。当然下面只是简单的进行了知识罗列不过有需要的朋友可以随便看看。说不准会有些收获呢。

Include/linux/printk.h中有如下定义:

#defineKERN_EMERG

"<0>"

/* system is unusable

 

 

*/

#defineKERN_ALERT

"<1>"

/* action must be taken immediately

*/

#defineKERN_CRIT

"<2>"

/* critical conditions

 

 

*/

#defineKERN_ERR

"<3>"

/* error conditions

 

 

*/

#defineKERN_WARNING

"<4>"

/* warning conditions

 

 

*/

#defineKERN_NOTICE

"<5>"

/* normal but significant condition

*/

#defineKERN_INFO

"<6>"

/* informational

 

 

*/

#defineKERN_DEBUG

"<7>"

/* debug-level messages

 

 

*/

 

/*Use the default kernel loglevel */

#defineKERN_DEFAULT

"<d>"

/*

*Annotation for a "continued" line of log printout (only done after a

*line that had no enclosing \n). Only to be used by core/arch code

*during early bootup (a continued line is not SMP-safe otherwise).

*/

#defineKERN_CONT

"<c>"

 

externint console_printk[];

 

#defineconsole_loglevel (console_printk[0])

#definedefault_message_loglevel (console_printk[1])

#defineminimum_console_loglevel (console_printk[2])

#definedefault_console_loglevel (console_printk[3])

 

这样定义了通常使用的prink函数调用时的参数。通过上面的定义可以清晰的看到系统默认的loglevel,包括日志级别和控制台级别。

/*printk's without a loglevel use this.. */

#defineDEFAULT_MESSAGE_LOGLEVEL CONFIG_DEFAULT_MESSAGE_LOGLEVEL

 

/*We show everything that is MORE important than this.. */

#defineMINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */

#defineDEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */

 

DECLARE_WAIT_QUEUE_HEAD(log_wait);

 

intconsole_printk[4] = {

DEFAULT_CONSOLE_LOGLEVEL,

/* console_loglevel */

DEFAULT_MESSAGE_LOGLEVEL,

/* default_message_loglevel */

MINIMUM_CONSOLE_LOGLEVEL,

/* minimum_console_loglevel */

DEFAULT_CONSOLE_LOGLEVEL,

/* default_console_loglevel */

};

通过上面的了解,可以知道当linux内核启动之后,能够看到那些级别的log信息。当然很多情况下,添加打印信息都是为了方便调试,当系统启动之后,很有可能我们变得很讨厌添加的log信息,或者想看到某个级别的信息。此时如果重新编译kernel然后烧写就会很浪费时间。这种情况下,应该最好能及时的修改日志级别看到真正想要看到的log 信息。

既然有这样的需求,那么linux能否提供呢?

答案当然不出意料,在linux中的特殊的文件proc中,就有这样可以进行操作的文件。

使用如下命令查看现在的printk的情况:

#cat /proc/sys/kernel/printk

7 4 1 7

对照上面的信息,就知道现在console中的级别为7,为了屏蔽部分信息,可以通过如下命令

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

 

LOGE\LOGD\LOGI等宏定义一般都是某个公司自己内部定义使用的打印函数,一般定义在board端的一个log-private.h文件中 ,被log.h文件引用之后,被hardware.h文件引用。在驱动中的头文件如果包含了这个头文件,那么程序中就可以使用LOGI的打印宏定义。

更改Linux console输出等级 最近在调试问题的时候,发现有些日志没有通过串口终端打印出来。排查发现是内核里面配置的串口日志等级较高,导致有些日志没有打印。在内核的配置文件里面,更改CONFIG_CONSOLE_LOGLEVEL_DEFAULT的值。 阅读详情

相关推荐

从硅片到时钟:揭秘SiTime MEMS谐振子的精密制造之旅

本文深入解析了SiTime MEMS谐振子的精密制造工艺,从硅晶圆的提纯到DRIE深硅刻蚀,再到真空封装技术,揭示了其如何克服传统石英晶振的局限。通过对比测试数据,展示了MEMS谐振子在精度、可靠性和生产效率上的显著优势,特别是在5G基站和汽车电子等领域的应用潜力。

weixin_42522953的博客 403

linxu 内核调试(3) - 内核loglevel

了解printk 1.Description   Specify the initial console log level. Any log messages with levels less than this (that is, of higher priority) will be printed to the console, whereas any messages with le...

weixin_41028621的博客 3113

PLUS模型土地利用变化模拟使用简介

因子包括自然因子如社会因子,通过计算整理得到新图层,并以tif文件输出到驱动因子的文件夹里,驱动因子文件夹里存放的是tif文件格式。线性回归使用提供的所有的LULC资源数据,可以选择往后预测的年数,选择好数据之后,可以得出预测的每一年的每一用地类型面积数据。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。

qq_42831270的博客 5808

Android 日志输出(println、logv、logd、logi、logw、loge、logwtf)

输出日志代码 // System.out:正常输出 System.out.println("onCreate:System.out"); // Log.println:即 Verbose,输出普通信息 Log.println(1, TAG, "onCreate: log.println"); // logv:即 Verbose,输出普通信息 Log.v(TAG, "onCreate: logv"); // logd:即 Debug,输出调试信息 Log.d(TAG, "onCreate: log...

卡尔特斯 9972

DTS中video-interfaces接口详解

视频数据管道通常由外部设备组成,例如通过I2C、SPI或UART总线控制的摄像机传感器,以及SoC内部IP块(包括视频DMA引擎和视频数据处理器)。 SoC内部块由DT节点描述,与其他SoC块放置方式类似。外部设备表示为它们各自总线控制器节点的子节点,例如I2C。 所有视频设备上的数据接口都由它们的子“port”节点描述。端口的配置取决于参与数据传输的其他设备,并由“endpoint”子节...

龙图腾的博客 9008

SRAM compiler中Power Gating与Retention的实战配置指南

本文深入解析了在SRAM compiler中配置Power Gating(电源门控)与Retention(数据保持)功能的实战指南。针对低功耗芯片设计,文章详细阐述了如何根据应用场景(如移动AP、IoT设备)权衡开关类型、尺寸、唤醒时序以及保持电压,以实现静态功耗优化与数据可靠性的最佳平衡,并强调了后端实现与签核检查的关键要点。

weixin_29204121的博客 296

python爬虫

一、requests模块 1 requests模块介绍 ①官方文档 https://docs.python-requests.org/zh_CN/latest/index.html ②requests模块作用 模拟浏览器发送http请求,获取响应数据 requests是第三方类库,需要你在python(虚拟)环境中额外安装 pip/pip3 install requests ③requests入门 # 导入requests模块 import requests # 目标url url = "https:/

weixin_46923014的博客 905

LaTex的下载与安装(2024小白+windows系统)

本文主要介绍了Latex的下载与安装,还包括安装过程中遇到的小问题的解决。

m0_53096519的博客 2万+

Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法

在调试代码的时候我们需要查看调试信息,那我们就需要用Android Log类。 android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, W

zuolongsnail的专栏 11万+

【系统安全】Windows内核权限提升漏洞(CVE-2024-30088)

CVE-2024-30088是Windows内核提权漏洞,由越南安全研究员@Bùi Quang Hiếu详细分析。漏洞发生在AuthzBasepCopyoutInternalSecurityAttributes函数中,该函数在复制SecurityAttributesList时会使用用户提供的指针,在校验及复制期间存在时间差,导致存在TOCTOU漏洞。

李同學AI安全 1325

构建OneService:打造高效、安全、灵活的企业级数据服务平台

数据服务(OneService)作为统一的数据服务出口,实现了数据的统一市场化管理,有效地降低数据开放门槛的同时,保障了数据开放的安全。

数据与算法架构提升之路专栏 2107

Android kernel和logcat的输出等级

结果:修改高通的服务脚本,重新编译生效(应该是这个服务覆盖了printk.c的配置)java。// 结果:没生效,还是 6 6 1 7。

Jimmy的专栏 1052

N32G430学习笔记11- systick使用函数-延时函数

N32学习笔记11- systick使用函数-延时回调函数-延时函数

Car12 1416

Linux开启关闭内核打印信息

Linux开启关闭内核打印信息

ask_true的博客 1831

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

关闭安卓串口内核打印和命令行

产品开发阶段需要打印来查看设备运行状态,设备发布后需要关闭各种调试接口,接口包括了串口的内核打印。

赵撵猪的博客 1800

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

sxr2130 开机自动打开kernel更多log(比如pr_debug,看设备驱动probe加载时间)的方法

前提: kernel/msm-4.19版本 1.kona_defconfig中添加如下两行: CONFIG_CONSOLE_LOGLEVEL_DEFAULT=8 CONFIG_DEBUG_DRIVER=y 其中CONFIG_DEBUG_DRIVER=y的目的是打开makefile中的编译选项,例如sxr2130-androidq-new/ap/kernel/msm-4.19/drivers/base/Makefile中,有如下定义 ccflags-$(CONFIG_DEBUG_DRIVER) :=

qkj261的博客 736

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

log level

vendor\mediatek\proprietary\bootable\bootloader\lk\include\debug.h(以mtk平台为例)CONSOLE_LOGLEVEL_DEFAULT,/*console_loglevel控制log级别*//*printk'swithoutaloglevelusethis..没有日志级别的printk使用*///下面的这些打印方法具体含义是如果级别...

Hedia Pan的博客 1527

五、prink的使用以及console控制日志输出级别

事情描述:前段时间做项目,遇到了一个比较奇怪的问题,应用层下发的数据,经过驱动使用SPI发送到打印头上,数据出现被拉宽的现象。刚开始是怀疑应用层给的数据不及时导致数据输出受到延迟,后来放开串口调试,发现一按下打印,大量通过SPI输出数据的时候,会不断打印调试的语句,如果把调试语句去掉,打印就正常了,所以初步判断是大量调用printk导致代码执行的效率变差(因为我们打印头输出数据有严格要求1ms给一次数据)。 kernel/printk/printk.c文件开头定义了一些日志级别,如下: int cons

weixin_29101181的博客 895

Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)(转)

  android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。  1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");  2、Log.d的输出颜色是蓝色的,仅输出...

weixin_34349320的博客 718

Android修改kernel和logcat的输出级别

Android修改kernel和logcat的输出级别 文章目录Android修改kernel和logcat的输出级别kernel查看当前输出级别输出宏定义指定级别高通初始化服务java备注 kernel 查看当前输出级别 cat /proc/sys/kernel/printk 6 6 1 7 输出 # kernel/msm-4.9/kernel/printk/printk.c int console_printk[4] = { CONSOLE_LOG

onj123的博客 3154

内核打印函数介绍 printk、、pr_xxx()API、dev_xxx()

内核打印函数介绍 2016年08月20日 20:01:20 那颗流星的秘密 阅读数:7000 标签: 驱动 更多 个人分类: 驱动开发 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/mike8825/article/details/52262774        在驱动中,有很多打印信息,有些是默认不能打开的,如dev_dbg或dev_v...

weixin_42082222的博客 5044
上一篇: MFC入门学习之控件(6)标签控件List Control的添加和使用(下)
下一篇: Ubuntu中文输入法和忘记密码之后登陆的方法
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值