Android日志过滤器中正则表达式的应用

网络信患工程
2021.01
Android 日志过滤器中正则表达式的应用
赵书慧
(辽宁石化职业技术学院,辽宁锦州,121001)
摘要:用Android  Studio 编辑应用程序过程中,Logcat 的日志过滤器经常会使用到。日志过滤器是支持正则表达式的,
有了这个特性,就可以构建出更加丰富的过滤条件。正则表达式有着强大的查询功能,通过对正则表达式特殊字符的分
深圳防疫站
析,将正则表达式运用于日志过滤器,从成百上千条日志中过滤出用户有用的信息,对快速调试程序有着重要的意义。 关键词:正则表达式;日志;过滤器
Application  of  regular  expression  in  Android  log  filter
Zhao  Shuhui
(Liaoning  Petrochemical  Vocational  and  Technical  College, Jinzhou  Liaoning, 121001)Abstrac t :In  the  process  of  editing  an  application  with  Android  Studio, Logcat J  s  log  filter  is  often  used. The  log  "Iter  supports  regular  expressions. With  this  feature, you  can  build  richer  filter  conditions. Regular  expressions  have  powerful  query  functions. Through  the  analysis  of  special  characters  in  regular  expressions, regular  expressions  are  applied  to  log  filters  to  filter  out  useful  information  for  users  from  hundreds  of  logs, which  is  important  for  fast  debugging  of  programs  Meaning. Keywords : regular  expression; log; filter
o 引言
Android  Studio 应用程序调试过程中,打印出来的日志
里边有很多不明不白的信息,影响我们查看日志的效率。能
正确的定位错误和到自己需要的日志信息是一件很幸福 的事,要想办法把不需要的日志给屏蔽掉,Logcat  Filter
能够完美胜任这个功能。在日志过滤器中运用正则表达式可
以保留自己想要的日志信息或过滤掉无用的日志信息,使用
转义字符或特殊字符序列来描述具有特定含义的过滤条件。
1 Android  studio 中的正则表达式伞齿轮
正则表达式(通常缩写成'regex ”)是一种可用于字符
串模式匹配和字符串替换的强有力的工具。如果我们要查 的字符串是具体而完整的,则直接用这个字符串进行查
即可。但一般情况下,我们对要查的内容只有一个模糊的 印象,模糊查则要使用正则表达式。在Android 中“*”号 并不会匹配任意字符,”号才匹配任意字符一次,Android
studio 的正则表达式和shell 中的正则表达式是一致的,常
用重点符号有:
(1) .*表示匹配任意字符>=0次,(2) .?匹配任意字符0
次或1次,
(3) . +匹配任意字符1
次或多次,
(4) 用$标识匹配的结
束,用-表示匹配的开始,
(5)用丨表示匹配关系的或,当不同的log 没有相同
的过滤条件,又想一次性过滤出来,丨可以多次使用。
2 Android 日志过滤器的使用方法
Logcat 是学习Android 过程中的一个重要的调试工具, 用来获取系统日志信息的。日志工具类Log 提供了 5个方法
供用户打印日志,按照级别从低到高排列如下:
Log. v 0对应级别verbose,用来记录详细信息,打印所
有的意义最小的日志信息。
Log. d()对应级别debu&用来记录调试信息。
Log.iO 对应级别inf 。,记录通告信息的,用于打印一些
比较重要的信息,程序中常用的是调试和通告这两种方法, 可以帮助用户分析行为的数据。
Log. w()对应级别warn,记录警告信息的,提示程序在
这个地方可能会有潜在的风险。
Log.eO 对应级别error,记录错误信息的,通常代表程
序出现了严重问题,必须尽快修复。
可以在Logcat 中的“日志级别”下拉列表中进行级别选 择,默认级别是最小的级别信息Verbose,如图1所示。级别日志级别
关键字过滤日志过滤器
图 1 Logcat
基金项目:2019年辽宁石化职业技术学院院级科研项目“基于Android 的学生信息管理系统的探究(LSHYY1909)。
申耳测说
结构补强ELECTRONIC
TEST
2021.01
网络信患工程
高于所选类型的信息也会在Logcat 中显示出来,级别低于所
选类型的信息则不会被显示,所以只是用日志级别过滤的信
息是有限的。
上面的5个方法每个方法会有不同的重载,但通常情况
下有两个参数,第一个参数是日志标签TAG(可以是一个字符
串,也可以定义一个常量用来标记),主要用于对日志信息进 行过滤;第二个参数是实际的信息内容msg,这两个参数都是 字符串类型的数据。程序运行到我们设置的“日志点”时,在
Logcat 中查相应位置的日志信息时,就可以根据'‘日志点”
显示的信息是否存在,或与我们预期在方法中设置的信息的
内容是否一致来判断程序运行到该位置之前是否存在错误,
迅速到错误的*'出事地点”。
运行Android 程序的时候,即使事先选择了某个日志信 息的级别,产生的日志信息还是很多。这时就要用到Logcat  提供的"过滤”功能了,单击图1右上角“日志过滤器”下拉
列表框,选择 Edit  Filter  Configuration  打开 Creat  New
Logcat  Filter 对话框(如图2)添加、删除、编辑日志过滤器。
可以根据日志信息的标签(Tag)、信息的内容(Message), H
志包名、产生日志的进程编号(PID)或者信息等级(Level),
对显示的日志内容进行过滤。单击对话框左上角的“+”号,添
加一个名为data 的过滤器,过滤条件设置为AAA,打印出来
的日志就只有标签为'AAA ”的有限几条了。根据自己应用程
序的包名在Logcat 里边自己创建一个过滤器,这样不管系统
是否给你创建过滤器,都能打印出和自己应用相关的日志。
图2创建新的日志过滤器对话框
3日志过滤器中使用正则表达式
打印的Log 有两部分,一是Tag,二是Message  c 由于
Message  一般是不固定的,所以还是愉快地用Tag 作例子来 过滤无关的Log 吧。假设我们要保留的T°g 是“AAA ” ,那么 在 Create  New  Logcat  Filter  对话框中,Log  Tag  栏输入 “AAA"即可。如果是保留多个呢?假设除了标签"AAA ”,还要
保留标,这个时候就要用到正则表达式了,只需要
在图2中勾选Log  Tag 栏位后面的Regex 复选框,过滤器的
Log  Tag 位置更改为'AAAlBBB ”即可,这是使用正则表达式中 最简单的“或”关系。也可以输入“ (A  | B) {3,} ”,其中{ 3, }表示
匹配前面字符的次数最少是3次。
(1) 只保留特定的log
若想知道每条日志的Tag 是什么,观察一下打印出来的
日志:
2020-08-22 10:02:44.171 26112-26112/com. example, logtest  I/AAA: onStart
中国经济为什么行
对应格式如下:
date  time  PID-TID/package  priority/tag: message 所以只要看到日志,就能根据位置知道该日志的Tag 和 Message …这里,PID 代表进程标识符;TID 则为线程标识符,
如果仅有一个线程,两者可以相同;package 是包名;tag 是 日志标签;message 是日志信息内容。过滤出指定Tag 的日
志信息,其正则表达式可以写成:”(?:tagl|tag2|tag3)
(2) 忽略特定的log
在Log  Tag 中输入正则表达式:”(?!.* (AAA)). *$
用”表示匹配的开始,用$标识匹配的结束,!表示否
定,其中AAA 是要忽略掉的Tag,表示除了标签AAA 之外的日
志信息全部要显示。例如:忽略指定tag 的日志信息可以写 成:"(?!tagl |tag21tag3)
(3) 除了可以在日志过滤器中使用正则表达式对特定的 log 进行过滤或忽略,也可以在图1中的"关键字
过滤”文本
搜索框中直接输入字符串或正则表达式,但关键字过滤时不
区分 Tag  和 Messageo
4结束语
程序开发过程中出现错误是不可避免的,录入程序时开
发环境即时可以检测语法错误,并及时提示我们错误的位置 以及修改的方法,但是逻辑错误的定位和分析是一件非常困
难的事情。当程序打印出成百上千行日志的时候,就会迫切
的需要日志过滤器了。Android 应用程序中会包含很多的类
名,通常会为每个类名设置一个常量TAG,根据TAG 用日志过
滤器筛选出自己想要看到的日志内容。如果要打印多个类的
日志内容就要使用正则表达式,在日志过滤器中使用正则表
财务信息化
天然精油
达式可以让用户通过使用特定字符构建查询模式,其所提供
的强大的模式匹配功能大大简化了日志筛选工作。当然,也
只有通过不断地实际使用的过程,反复运用和精通正则表达
式的所有特殊字符,才能真正体会到运用正则表达式在日志 过滤中的优越性,为程序的调试提供强有力的支持。
参考文献
[1]郭霖.第一行代码Android(第2版)[M].人民邮电出版社,
2016 年 12 月.
⑵李旻,陈和平.正则表达式在数据库查询中的应用[J].计
算机工程与设计,2006⑹.
(上接第96页)
⑶ 郭云.提升电气自动化控制设备可靠性探讨[J],电子世 ⑷ 杨明.电气自动化控制设备的可靠性分析[J],电子测
界,2019(18):11-13.
试,2019(16):47-49.
ELECTRONIC
TEST

本文发布于:2024-09-22 01:21:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/543723.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:日志   信息   过滤器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议