首页 > 其他分享 >Android 10 设置kernel log level

Android 10 设置kernel log level

时间:2023-09-19 20:02:50浏览次数:45  
标签:10 log kernel SOH level KERN printk define

有时候kernel log内容过多/过少影响我们分析问题,因此需要对kernel log进行设置。

查看平台默认kernel loglevel

$ cat /proc/sys/kernel/printk
6       6       1       7

kernle log级别为6 6 1 7

关闭所有kernel log

$ echo "0 6 1 7" >proc/sys/kernel/printk		//往printk文件写入“0 6 1 7”,关闭所有kernle log
$ cat /proc/sys/kernel/printk		//查看修改后的kernle log
0       6       1       7

注意:只能临时关闭,重启后重置,默认值修改见下文

修改kernel log默认值

以Android 10.0 qcom平台为例,修改如下: device/qcom/common/rootdir/etc/init.qcom.sh

case "$buildvariant" in
    "userdebug" | "eng")
        #set default loglevel to KERN_INFO
-       echo "6 6 1 7" > /proc/sys/kernel/printk
+       echo "0 6 0 7" > /proc/sys/kernel/printk
        ;;
    *)
        #set default loglevel to KERN_WARNING
        echo "4 4 1 4" > /proc/sys/kernel/printk
        ;;
esac

printk文件解读

该文件中4个数字,如“6 6 1 7”,根据日志记录消息的重要性/优先级(数值越小,优先级越高),定义将其发送到何处。 源码定义如下: kernel/msm-4.14/kernel/printk/printk.c

int console_printk[4] = {
	CONSOLE_LOGLEVEL_DEFAULT,	/* console_loglevel 控制台日志级别,优先级高于该值的消息将被打印至控制台*/
	MESSAGE_LOGLEVEL_DEFAULT,	/* default_message_loglevel 默认的消息日志级别,将用该优先级来打印没有优先级的消息*/
	CONSOLE_LOGLEVEL_MIN,		/* minimum_console_loglevel 最低的控制台日志级别,控制台日志级别可被设置的最小值(最高优先级)*/
	CONSOLE_LOGLEVEL_DEFAULT,	/* default_console_loglevel 默认的控制台日志级别,控制台日志级别的缺省值*/
};

kernel/msm-4.14/include/linux/kernel_level.h

#define KERN_EMERG	KERN_SOH "0"	/* system is unusable */
#define KERN_ALERT	KERN_SOH "1"	/* action must be taken immediately */
#define KERN_CRIT	KERN_SOH "2"	/* critical conditions */
#define KERN_ERR	KERN_SOH "3"	/* error conditions */
#define KERN_WARNING	KERN_SOH "4"	/* warning conditions */
#define KERN_NOTICE	KERN_SOH "5"	/* normal but significant condition */
#define KERN_INFO	KERN_SOH "6"	/* informational */
#define KERN_DEBUG	KERN_SOH "7"	/* debug-level messages */

标签:10,log,kernel,SOH,level,KERN,printk,define
From: https://blog.51cto.com/u_15964349/7528277

相关文章

  • Road To Reality(Multiple valuedness, natural logarithms)
    RoadToReality(Multiplevaluedness,naturallogarithms)Addition-to-multiplication\(e^{a+b}=e^ae^b\)theinverseoftheexponentialfunction:\(z=\ln{w}\)if\(w=e^z\)Hence:\(\ln{ab}=\ln{a}+\ln{b}\)AspecialCartesianform(\(z=x+iy\)......
  • MySQL高级10-InnoDB引擎存储架构
    一、逻辑存储结构表空间(Tablespace):一个mysql实例,及一个数据库实例,可以对应多个表空间(ibd文件),用于存储记录,索引等数据。段(Segment):分为数据段(Leafnodesegment)、索引段(Non-leafnodesegment)、回滚段(Rollbacksegment),InnoDB是索引组织表,数据段就是B+树......
  • 10-SequentialTaskset有顺序的测试任务集
    SequentialTaskSet有顺序的任务集顾名思义,集合内的task是由上到下按顺序执行的,例如:fromlocustimportSequentialTaskSet,task,FastHttpUserclassMySTS(SequentialTaskSet):@taskdefstep_01(self):print(1)@taskdefstep_02(self):......
  • 分析开发板信息中为啥df -h显示sda11分区挂载只有2GB Size且使用100%,但fdisk -l sda11
    问题点当使用开发板中的存储设备分区,进而格式化挂载到某个目录上后,使用df&lsblk后发现分区挂载情况和实际的存储器分区信息有差异后,会感到很疑惑,下面介绍遇到的情况:情况1使用xml添加分区后发现对应分区格式化&挂载对应设置的系统目录上但分区sizeAvailablesize&Used之和不相......
  • win10 mysql
    windows10下安装配置mysql8.0(保姆级教程)news2023/9/1910:53:13 文章目录一、MySQL8.0的基本信息二、MySQL8.0的系统要求三、MySQL8.0的安装步骤3.1.下载MySQL8.03.2.运行MySQL安装文件3.3.选择安装类型3.4.配置MySQLServer3.5mysqlshell的使......
  • ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
    查找员工编号为7369的领导:1SELECTLEVEL,E.*FROMEMPECONNECTBYPRIORE.MGR=E.EMPNOSTARTWITHE.EMPNO=78762ORDERBYLEVELDESC"startwith"--thisidentifiesallLEVEL=1nodesinthetree"connectby"--describeshowtowalkfromt......
  • 解决Logic Apps terraform部署时大小写问题
    今天来分享一个实际工作中遇到的一个问题,首先来描述下场景和问题,我们之前在使用terrafrom来部署一些logicapps,具体部署的方法之后准备单独写博客来分享下,其实也是挺值得谈谈的这次先来简单分析下遇到的问题,logicapps里其实包含了很多子组件,包括trigger,action等等,都用terraform......
  • P1056 NOIP2008 普及组 排座椅
    \(P1056\)[\(NOIP2008\)普及组]排座椅题解先想一下算法:因为题目里出现了最优解,最好的方案关键字,所以一定会用贪心。然后从题目给的样例解释可以看到:如果相邻的两行有许多组说话的同学,那么在这两行中间加一条过道是非常划算的;同理,列也是如此。恍然大悟,只要找出划分哪些......
  • Serilog实战
    提问快速上手Serilog步骤回答引用Serilog.Sinks.AsyncSerilog.Sinks.FileSerilog.Sinks.Console2.配置appsetting.sjon加入如下项"Serilog":{"MinimumLevel":{"Default":"Debug","Override":{&......
  • 02_实战项目Zlog日志框架
    Zlog日志注释控制日志打印//printf("appstart\n");printf("appstart\n");printf("appstart\n");//printf("appstart\n");printf("appstart\n");//printf("appstart\n");printf("appstart\n&quo......