Android 系统log等级
最近在开发某一款手机项目时,当打开Camera时,Camera模块不断的输入日志,导致当前系统负荷过大,导致系统出现卡滞等问题。基于此研究下如何提高Andorid系统的log等级(以Android10为例)
Android系统的log等级分类
目前Android系统log等级大致分为以下几类:
- V 详细(最低优先级)–(Verbose:2)
- D 调试 --(Debug:3)
- I 信息 – (Info:4)
- E 警告 --(Warning:5)
- F 严重错误 --(Fatal:7)
- S 静默(最高优先级,绝不会输出任何内容)–(Silent)
分析过程
初步看到此问题时,主要解决思路是:找到Camera定义TAG的位置,然后将其屏蔽掉,但是在执行过程中发现,此思路无法解决此问题。
因为,该TAG定义在.h文件当中,单独屏蔽此TAG无法实现此功能。
最后采用system属性方式修复此问题。具体思路如下:
1、getprop | grep log —>查看当前系统下关于log的系统属性;
2、设置系统打印log优先级
setprop persist.log.tag Error -->设置当前Android系统log等级在Error。只有优先级高于Error的日志才会被打印出来。例如F 和 S
3、设置相应模块日志优先级。主要根据TAG来处理:
setprop log.tag.xxxx F -->设置TAG为xxxx等级为F,只有该TAG定义的日志高于此优先级时 日志才会被打印出来。