本技术涉及计算机,具体而言,涉及一种日志数据显示方法、装置及电子设备。
背景技术:
1、系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。
2、现有的图形化日志管理工具产品,基本是只支持单个平台对日志文件进行全部加载显示,没有解析分类且对大文件日志支持效果不佳,而且在加载大文件日志时,不仅加载速度慢,还会存在内存占用过大导致日志无法显示或者导致应用卡顿或者应用崩溃的严重问题。
技术实现思路
1、有鉴于此,本技术的目的在于提供一种日志数据显示方法、装置及电子设备,能够加快日志文件的加载速度,同时占用较少内存,防止应用卡顿。
2、本技术实施例提供的一种日志数据显示方法,所述方法包括:
3、确定目标日志文件在终端设备的目标存储地址,并配置所述目标存储地址和目标进程的进程空间之间的映射关系;
4、根据所述映射关系和预先配置好的分块长度,确定每一次读取对应的分块存储地址;
5、通过目标进程读取所述分块存储地址对应的日志数据块,将读取的日志数据块缓存至进程空间;
6、将进程空间中的日志数据拼接为日志数据,并将符合预设展示条件的所述日志数据加载到图形用户界面的展示控件进行展示。
7、在一些实施例中,所述的日志数据显示方法中,所述根据所述映射关系和预先配置好的分块长度,确定每一次读取对应的分块存储地址,包括:
8、基于所述映射关系对应的目标存储地址中的起始存储地址和结束存储地址,重复以下步骤,直至符合预设读取中止条件、或者完成目标文件日志的读取;
9、根据所述映射关系对应的分块起始地址和预先配置好的分块长度,确定本次读取对应的分块结束地址;
10、根据分块起始地址和分块结束地址,确定本次读取对应的分块存储地址;
11、在本次读取完成后,将所述分块结束地址的下一位存储地址更新为分块起始地址。
12、在一些实施例中,所述的日志数据显示方法中,通过目标进程读取所述分块存储地址对应的日志数据块,将读取的日志数据块缓存至进程空间,包括:
13、通过目标进程读取所述分块存储地址对应的日志数据块,并将所述日志数据块缓存至图形用户界面的展示控件对应的、进程空间的当前缓存区域,或缓存至进程空间的当前缓存区域之后的后缓存区域;
14、判断所述后缓存区域中的剩余空间是否大于或等于一日志数据块所需空间;
15、若是,则通过目标进程读取下一个分块存储地址对应的下一个日志数据块;
16、若否,则中止通过目标进程读取下一个分块存储地址对应的下一个日志数据块。
17、在一些实施例中,所述的日志数据显示方法中,将符合预设展示条件的所述日志数据加载到图形用户界面的展示控件进行展示,包括以下之一:
18、将展示控件对应的当前缓存区域中缓存的日志数据加载到图形用户界面的展示控件进行展示;
19、实时监测窗口的鼠标事件,当鼠标向上滑动时,将缓存在前缓存区域中的日志数据加载到图形用户界面的展示控件进行展示;当鼠标向下滑动时,将缓存在后缓存区域中的日志数据加载到图形用户界面的展示控件进行展示,同时将当前缓存区域中的日志数据更新至前缓存区域。
20、在一些实施例中,所述的日志数据显示方法中,通过目标进程读取所述分块存储地址对应的日志数据块,将读取的日志数据块缓存至进程空间,包括:
21、通过目标进程读取所述分块存储地址对应的日志数据块,并为所述日志数据块的首端添加起始地址标识,为所述日志数据块的尾端添加结束地址标识,
22、将添加了起始地址标识和结束地址标识的日志数据块缓存至进程空间;
23、将进程空间中的日志数据拼接为日志数据,包括:
24、根据所述起始地址标识和结束地址标识拼接日志数据块,将进程空间中的日志数据块拼接为日志数据。
25、在一些实施例中,所述的日志数据显示方法中,在响应接收到查找指令之前,所述方法还包括:
26、根据进程读取日志数据块所需的内存大小,预先申请一块内存地址空间;
27、基于预先申请的内存地址空间创建内存池作为进程空间。
28、在一些实施例中,所述的日志数据显示方法中,将符合预设展示条件的所述日志数据加载到图形用户界面的展示控件进行展示,包括:
29、处理所述符合预设展示条件的所述日志数据,从预先配置好的标签库中确定所述日志数据匹配的解释说明标签;
30、将所述解释说明标签添加至所述日志数据中,并将添加有解释说明标签的日志数据加载到图形用户界面的展示控件进行展示。
31、在一些实施例中,所述的日志数据显示方法中,通过目标进程读取所述分块存储地址对应的日志数据块,包括:
32、为目标进程中的不同线程分配不同的分块存储地址;
33、不同线程同时读取对应的分块存储地址中的日志数据块。
34、在一些实施例中,还提供一种日志数据显示装置,具体的,所述日志数据显示装置,包括:
35、配置模块,用于确定目标日志文件在终端设备的目标存储地址,并配置所述目标存储地址和目标进程的进程空间之间的映射关系;
36、确定模块,用于根据所述映射关系和预先配置好的分块长度,确定每一次读取对应的分块存储地址;
37、读取模块,用于通过目标进程读取所述分块存储地址对应的日志数据块,将读取的日志数据块缓存至进程空间;
38、加载模块,用于将进程空间中的日志数据拼接为日志数据,并将符合预设展示条件的所述日志数据加载到图形用户界面的展示控件进行展示。
39、在一些实施例中,还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行所述的日志数据显示方法的步骤。
40、本技术实施例提供一种日志数据显示方法、装置及电子设备,所述日志数据显示方法先确定目标日志文件在终端设备的目标存储地址,并配置所述目标存储地址和目标进程的进程空间之间的映射关系;根据所述映射关系和预先配置好的分块长度,确定每一次读取对应的分块存储地址;通过目标进程读取所述分块存储地址对应的日志数据块,将读取的日志数据块缓存至进程空间;将进程空间中的日志数据拼接为日志数据,并将符合预设展示条件的所述日志数据加载到图形用户界面的展示控件进行展示;这样,利用内存映射对于目标日志文件以固定长度进行分块并映射到内存中,舍弃常用的io系统调用read,避免了从磁盘到缓冲区再到进程空间的多次拷贝,提升了日志数据读写性能,提高了加载速度,同时,仅仅读取以及加载可显示区域所需要的日志数据,防止内存占用过大,保证日志能够显示,避免应用卡顿或者应用崩溃。