System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息处理,尤其涉及一种日志管理方法及电子设备。
技术介绍
1、随着电子设备的不断发展,电子设备(如手机等)逐渐成为人们必不可少的生活用品,人们可以使用电子设备观看视频、阅览新闻等。在用户使用电子设备的过程中,电子设备会产生大量的日志数据,日志数据一般存储在日志缓冲区内,如果日志缓冲区剩余空间不足,电子设备将无法将新的日志数据存储在日志缓冲区内,导致日志数据丢失,从而可能会导致电子设备无法准确地利用日志数据进行问题分析。
技术实现思路
1、本申请实施例提供一种日志管理方法及电子设备,用于解决因日志打印过多而导致部分日志丢失的情况,减少日志丢失的概率。
2、为达到上述目的,本申请的实施例采用如下技术方案:
3、第一方面,提供了一种日志管理方法,应用于电子设备,该电子设备中安装有第一应用,该方法中,电子设备接收日志驱动下发的日志结构体,其中,该日志结构体为第一应用产生的日志文件对应的结构体。若第一日志结构体的日志信息与缓存池中第二日志结构体的日志信息相同,将第一日志结构体的时间戳添加至第二日志结构体中,得到合并后的第二日志结构体;其中,第一日志结构体为日志驱动下发的任一日志结构体,第二日志结构体为缓存池中的任一日志结构体。之后,在满足预设条件的情况下,将缓存池中的多条日志结构体写入套接字socket缓冲区。
4、本申请实施例中,若第一日志结构体的日志信息与缓存池中第二日志结构体的日志信息相同,表明第一日志结构体为重复日志,因此,可以将第一日志
5、在第一方面的一种可能的实现方式中,上述方法还包括:若第一日志结构体的日志信息与缓存池中所有日志结构体的日志信息不相同,将该第一日志结构体存入缓存池中;其中,在缓存池进行配置的过程中,缓存池中不包含日志结构体。
6、本申请实施例中,若第一日志结构体的日志信息与缓存池中所有日志结构体的日志信息不相同,表明第一日志结构体为新的日志,因此,为了便于后续日志分析,电子设备可以将该第一日志结构体存入缓存池中,如此,可以提升日志分析结果的准确性,减少因遗漏日志文件而影响日志结果的情况发生。
7、在第一方面的一种可能的实现方式中,上述日志信息包括日志名称、进程号/线程号、日志优先级、日志标签以及日志内容中的至少一种。
8、在第一方面的一种可能的实现方式中,上述合并后的第二日志结构体的日志信息包括日志名称、进程号/线程号、日志优先级、日志标签以及日志内容、日志重复次数以及时间戳链表中的至少一种。其中,时间戳链表包括与第二日志结构体对应的日志信息相同的日志结构体的时间戳。
9、在第一方面的一种可能的实现方式中,上述预设条件包括缓存池的缓存时长达到预设缓存时间;和/或,缓存池中所有日志结构体的数据量达到预设数据量。
10、本申请实施例中,若缓存池的缓存时长达到预设缓存时间,说明该日志文件存储在缓存区的时间较长,因此,将缓存池中的多条日志结构体写入socket缓冲区,可以避免因日志存储时间过长而导致无法及时分析日志的情况发生,提升了日志分析的及时性;若缓存池中所有日志结构体的数据量达到预设数据量,表明该缓存区已经没有剩余内存空间,因此,将缓存池中的多条日志结构体写入socket缓冲区,可以避免后续日志文件的丢失,最大程度的节约电子设备的存储资源,提升日志的存储空间。
11、在第一方面的一种可能的实现方式中,上述方法还包括:在缓存池的缓存时长未达到预设缓存时间的情况下,电子设备可以继续接收日志驱动下发的日志结构体。
12、本申请实施例中,若缓存池的缓存时长未达到预设缓存时间,表明该缓存池中的日志文件存储在缓存池的时间较短,因此,电子设备可以继续接收日志驱动下发的日志结构体,以便于后续对重复的日志结构体进行合并,以提升日志的聚合度。
13、在第一方面的一种可能的实现方式中,上述方法还包括:在缓存池中所有日志结构体的数据量未达到预设数据量的情况下,判断缓存池中的日志长度是否大于预设日志长度。
14、本申请实施例中,若缓存区对应的日志缓存容量未超过预设缓存容量,表明该缓存区中虽然存在日志文件超时的情况但仍存在空闲的内存空间,因此,为了非阻塞socket缓冲区能够存储更多的日志文件,电子设备可以判断缓存池中的日志长度是否大于预设日志长度,以对日志长度小于预设日志长度的日志结构体进行压缩,最大程度的节约socket缓冲区的存储资源。
15、在第一方面的一种可能的实现方式中,上述将缓存池中的多条日志结构体写入socket缓冲区的过程,具体可以包括:若第三日志结构体的日志长度大于或等于预设日志长度,将该第三日志结构体写入socket缓冲区,其中,第三日志结构体是多条日志结构体中的任一未写入socket缓冲区的日志结构体。
16、本申请实施例中,若第三日志结构体的日志长度大于或等于预设日志长度,说明该第三日志结构体为长日志,因此,可以直接将该第三日志结构体写入socket缓冲区中,如此,可以提升日志结构体的发送效率,减少因不必要的日志合并而导致资源浪费的情况发生。
17、在第一方面的一种可能的实现方式中,上述方法还包括:若第三日志结构体的日志长度小于预设日志长度,将第三日志结构体与一个或多个第四日志结构体合并,直至合并后的日志长度大于或等于预设日志长度,将合并后的日志结构体写入socket缓冲区,其中,第四日志结构体是位于第三日志结构体之后、未写入socket缓冲区的日志结构体。
18、本申请实施例中,若第三日志结构体的日志长度小于预设日志长度,说明该第三日志结构体为短日志,因此,为了提升缓存区的日志存储效率,可以将第三日志结构体与一个或多个第四日志结构体合并,直至合并后的日志长度大于或等于预设日志长度,也就是直至合并后的日志结构体为长日志,才将该合并后的日志结构体写入socket缓冲区,如此,可以将多个短日志文件合并为一个长日志文件,不仅可以在节约手机存储资源的同时提升日志聚合度,降低日志丢失的概率,还可以减少因多次向socket缓冲区发送日志文件而消耗io资源的情况发生,提升io资源的调用频率。
19、在第一方面的一种可能的实现方式中,上述日志结构体合并的过程,具体可以包括:将一个或多个第四日志结构体中不同于第三日志结构体的内容合并至第三日志结构体中。
20、本申请实施例中,若第三日志结构体的日志长度小于预设日志长度,则将第四日志结构体中不同于第三日志结构体的内容本文档来自技高网...
【技术保护点】
1.一种日志管理方法,其特征在于,应用于电子设备,所述电子设备中安装有第一应用,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预设条件,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述多条日志结构体按照预设顺序存储在所述缓存池中;
4.根据权利要求3所述的方法,其特征在于,所述将所述第三日志结构体与一个或多个第四日志结构体合并,包括:
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述将所述缓存池中的多条日志结构体写入socket缓冲区之后,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述接收日志驱动下发的日志结构体之后,所述方法还包括:
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
9.一种电子设备,其特征在于,所述电子设备包括存储器和一个或多个处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计
10.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至8中任一项所述的方法。
...【技术特征摘要】
1.一种日志管理方法,其特征在于,应用于电子设备,所述电子设备中安装有第一应用,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预设条件,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述多条日志结构体按照预设顺序存储在所述缓存池中;
4.根据权利要求3所述的方法,其特征在于,所述将所述第三日志结构体与一个或多个第四日志结构体合并,包括:
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述将所述缓存池中的多条日志结构体写入socket缓冲区之后,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
...
【专利技术属性】
技术研发人员:罗旗良,
申请(专利权)人:荣耀终端股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。