根据文章-Linux Trace机日志可视化查找工具的构想后,笔者完成了根据时间点定位日志文件的shell脚本。今天把这几天基于虚拟仪器LabVIEW的可视化日志检索界面做出来。
先上个简单的基本界面,后期再增加精细化的功能。笔者的考虑就是在触摸屏上完成关键字检索,所以配置了虚拟键盘。测试日志是mysql数据库日志。
整个程序也算简单,一个while循环和一个事件结构,因框图较多,笔者只分享一部分程序框图。在实际的后续更新中,笔者准备使用通知器组成的生产者消费者来完成整个系统的设计,plink完成日志读取,存入通知器,日志检索是读取通知器里面的日志信息,然后可以多次分析检索。
为什么不适用队列呢,哈哈,你自己想想!
程序功能分为3大部分。
1、字符串检索。利用搜索拆分字符串函数,字符串中搜索/拆分字符串中指定的字符串,返回匹配之前的子字符串和匹配+剩余字符串返回剩余的两个字符串。使用while循环一直搜索到匹配偏移量为-1为止。
2、上下选择定位到检索字符串。字符串检索得到的是检索到的字符串偏移量数组,转换为行数,传递给字符串滚动条位置即可定位到检索字符串的位置。
在这里困惑了笔者很久,笔者一直以为字符串滚动条位置的输入值是字符串偏移量(不知道为啥有这个预想),搞了很久都不成功,因为字符较少,现象也不明显。后面查看及时帮助才知道是行数,下面是利用换行符算出字符串偏移量的对应行数。
3、虚拟键盘功能。触摸屏操作,那么就没有物理键盘了,虚拟键盘可以完成关键字符串的输入,但是不能输入中文,不过日志也没有中文。事件结构在鼠标按下关键字搜索框时,弹出虚拟键盘。
在调试过程中,花了笔者较大时间的是输入成功后,一直搜索不到。笔者将关键字转为16进制显示,发现后面又OD换行符导致搜索失败,然后在虚拟键盘的enter键按下的处理中将换行符取消。
虚拟键盘的程序框图太大了,基本原理就是事件结构读取每个按键的值,然后输出给关键字搜索框。
网友评论