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

Android系统通过属性设置来控制log输出的方案

Android系统通过属性设置来控制log输出的方案

背景

       项目中经常需要在针对性的模块或者文件,分析问题的时候输出Log,但问题分析完成后,又由于性能问题,需要关闭这些log输出。当前大多数情况下是控制整个系统的log等级来实现,但这种方式会影响到其他模块,输出过多的其他模块的log,并不能使log集中于问题;这需要一种灵活的针对性的log控制方案。

方案

通过对问题模块的文件,设置特定的TAG,并关联该TAG到指定的persist属性;系统编译时默认这些属性关闭或者设置较高等级; 需要分析问题时,通过adb shell 调整这些属性;从而达到控制问题模块log输出的目的;

具体实施步骤

1、通过Log.isLoggable控制的log属性标签


例如:R基线中的AccessibilityCache.java中,TAG为:AccessibilityCache

控制的属性标签为:

log.tag.AccessibilityCache


由于该属性不能直接进行保存,所以,需要进行转接,通过persist属性进行控制

2、可以在系统中任意的rc文件中添加属性配置

这里我们选择system/core/logcat/logcatd.rc文件,在其中对log.*属性和persist.*属性进行关联

#add for log begin
on property:persist.logd.logpersistd=clearsetprop logd.logpersistd clearon property:persist.logd.logpersistd=stopsetprop logd.logpersistd stopon property:persist.log.tag.AccessibilityCache=*setprop log.tag.AccessibilityCache ${persist.log.tag.AccessibilityCache}on property:persist.log.tag.GnssLocationProvider=*setprop log.tag.GnssLocationProvider ${persist.log.tag.GnssLocationProvider}#add for log end


3、然后再在system.prop文件中对persist属性设置初始值

#for FW log.tag.*
persist.log.tag.AccessibilityCache=E
persist.log.tag.GnssLocationProvider=E
#Set logd file size 20M
persist.logd.logpersistd.rotate_kbytes=20480

4、重新编译系统

5、刷机验证

至此,编译后的版本,就可以根据需要通过以下两个属性,对AccessibilityCache.java和GnssLocationProvider.java文件中的log进行输出控制

persist.log.tag.AccessibilityCache
persist.log.tag.GnssLocationProvider

http://www.lryc.cn/news/396767.html

相关文章:

  • JavaDoc的最佳实践
  • 数字力量助西部职教全面提升——唯众品牌大数据、人工智能系列产品中标甘肃庆阳职院数字经济人才培养基地!
  • Swagger的原理及应用详解(四)
  • Elasticsearch7.10集群搭建
  • SMU Summer 2024 Contest Round 3
  • uniapp 封装瀑布流组件
  • pd虚拟机去虚拟化是什么意思?pd虚拟机去虚拟化教程 PD虚拟机优化设置
  • 低代码研发项目管理流程优化:提效与创新的双重驱动
  • 32位版 C 库函数time 将在 2038 年溢出,那到时候,它该何去何从
  • C语言 printf函数缓冲机制
  • 【Linux进阶】文件系统8——硬链接和符号连接:ln
  • 代码随想录算法训练营Day64|拓扑排序(卡码网117)、dijkstra朴素版
  • neo4j 图数据库:Cypher 查询语言、医学知识图谱
  • 数据结构基础--------【二叉树基础】
  • 数据开源 | Magic Data大模型高质量十万轮对话数据集
  • webpack之ts打包
  • MATLAB数据统计描述和分析
  • 设计分享—国外后台界面设计赏析
  • 最小生成树(算法篇)
  • 教师管理小程序的设计
  • Selenium 等待
  • 安装easy-handeye
  • 【面试题】MySQL 索引(第二篇)
  • 4. 小迪安全v2023笔记 javaEE应用
  • anaconda修改安装的默认环境
  • MySQL 9.0 正式发行Innovation创新版已支持向量
  • 基于Java+SpringMvc+Vue技术的智慧校园系统设计与实现
  • 【蔬菜网元宇宙】—— 探索农业的未来之旅
  • 淘宝商品历史价格查询(免费)
  • 14-47 剑和诗人21 - 2024年如何打造AI创业公司