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

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的打印宏定义。

转至:http://blog.csdn.net/codectq/article/details/24734269

如何屏蔽LOGD\LOGI等打印输出相关推荐

  1. 解读Android LOG机制的实现

    转载自http://www.cnblogs.com/hoys/archive/2011/09/30/2196199.html Android提供了用户级轻量的LOG机制,它的实现贯穿了Java,JNI ...

  2. Android入门(三) | Android 的日志工具 Logcat

    文章目录 日志工具类 android.util.Log Logcat 中的过滤器 日志工具类 android.util.Log Log 从属日志工具类 android.util.Log ,该类提供了五 ...

  3. Android源码-Logger日志系统

    Android提供的日志功能是基于liunx中的Logger日志驱动实现,日记驱动是个啥子东东?就是一个虚拟设备,在kernel内核中的一块内存. 整个Android系统的日志有4种类型(括号内为对应 ...

  4. Android Studio 技巧

    一.Help | Find Action (Ctrl + Shift + A),这个快捷键非常有用,是一个命令查找,在任何时间,都可以执行此命令,输入你需要的操作,例如"extract me ...

  5. powershell 学习笔记

    命令模式        //字符串不需要加引号,除变量和圆括号中的内容外的所有内容均可看作字符串        copy users.txt accounts.txt        copy $src ...

  6. android系统中log机制

    Android提供了用户级轻量的LOG机制,它的实现贯穿了Java,JNI,本地c/c++实现以及LINUX内核驱动等Android的各个层次,而且足够简单清晰,是一个相当不错的解读案例.本系列文章针 ...

  7. android 中无法使用LOGE显示log

    2019独角兽企业重金招聘Python工程师标准>>> #include <utils/Log.h>把Log.h 文件包含进来 #define LOG_TAG " ...

  8. 在Android C/C++层添加LOG调试(LOGI\LOGD\LOGE...)输出支持

    最近在研究Android 2.3.3源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成L ...

  9. 在Android C/C++层添加LOG调试(LOGI/LOGD/LOGE

    最近在研究Android 2.3.3源代码的C/C++层,需要对代码进行一些调试,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat却看不到任何输出,换成L ...

最新文章

  1. 软件“吞噬”世界后,我们正在进入“活产品”时代
  2. JAVA虚拟机体系结构
  3. Android开发之ListView的全选和全不选
  4. Win11开始大范围推送!
  5. php 缩略图增加水印,PHP生成缩略图加图片水印代码
  6. 【华为云技术分享】测试微课堂 | 有的放矢制定测试计划
  7. python colorbar 0变白色_Python matplotlib更改超过colorbar范围的值的默认颜色
  8. who I am ?
  9. VectorDraw(CAD) web library 9.9 Crack
  10. 闽南歌歌词有一句电子计算机,丁丁丁丁是什么歌_抖音闽南歌曲丁丁丁丁歌名、歌手、歌词介绍_游戏吧...
  11. Windows 10 笔记本如何使用外接显示器
  12. 为FishBot模型注入物理属性并在Gazebo中显示
  13. 有价值项目分享,缺项目可直接搜索(持续更新中)
  14. 安徒生---海的女儿
  15. 【大数据AI人工智能】创造意义的是人类,不是机器
  16. npm install 报node-sass错误
  17. kingcms标签大全
  18. 手机图片压缩大小的方法,用什么软件压缩
  19. CSS3多重背景及背景图片裁剪、定位和尺寸
  20. windows下JDK的安装(一):安装路径的选择

热门文章

  1. Android Native 代码NDK开发学习笔记
  2. Cortex - M3 一些基础知识
  3. LeetCode-7.整数反转(越界问题)
  4. java 外观模式_Java设计模式11:外观模式
  5. android sim卡命令,Android常用命令
  6. linux qemu原理,最全的剖析QEMU原理的文章3
  7. matlab中三维非线性拟合,matlab非线性拟合与绘制三维曲面
  8. python函数求n年后本息_Python自定义函数计算给定日期是该年第几天的方法示例...
  9. 多吉搜索不能用了_「转载」一个纯粹的中文搜索引擎:「Doge Doge」多吉搜索
  10. python提取列表中文本_Python正则表达式:从文本文件中提取关键字后的元组列表...