[发明专利]一种客户端日志不易失的存储方法有效
申请号: | 201910298001.1 | 申请日: | 2019-04-15 |
公开(公告)号: | CN110046135B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 严斌;周吕 | 申请(专利权)人: | 湖南快乐阳光互动娱乐传媒有限公司 |
主分类号: | G06F16/18 | 分类号: | G06F16/18;G06F16/178;G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王学强 |
地址: | 410001 湖南省长沙市*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 客户端 日志 不易 存储 方法 | ||
本发明公开了一种客户端日志不易失的存储方法,包括以下步骤:步骤A,找到日志目录下的起过渡作用的日志文件,根据MMAP规则将该起过渡作用的日志文件映射到MMAP内存中;步骤B,接收到日志数据时,将该日志数据写入MMAP内存中;步骤C,MMAP内存将接收到的日志数据打印到所述起过渡作用的日志文件中;步骤D,扫描日志目录中的日志文件,将扫描到的日志文件进行重命名。本发明解决了日志信息因客户端崩溃而丢失的问题;同时,不用增长内存就可以写多个日志文件,可以减少客户端写日志带来的IO消耗,减少写日志而产生的卡顿问题,提高用户体验。
技术领域
本发明属于客户端日志存储方法领域,特别涉及一种客户端日志不易失的存储方法。
背景技术
在现有技术中,大部分的客户端(Android或者IOS系统)日志存储方法是,打开一个文件句柄,然后直接对文件句柄进行读写,这样就相当于直接对磁盘进行操作,存在一个问题是:如果正在写日志时客户端崩溃掉了,那么可能当前打印的关键日志没有写入到磁盘,导致日志信息丢失。此外,直接读写文件存在IO等待的问题,可能因为写日志导致卡顿。
在现有技术中,有小部分的客户端日志存储方法是,直接写入堆栈空间,等缓冲区满了以后,再一次性写入磁盘或者是开辟线程写入磁盘,该方法同样存在日志信息因客户端崩溃而丢失的可能。
发明内容
本发明的目的在于,针对上述现有技术的不足,提供一种客户端日志不易失的存储方法,解决了日志信息因客户端崩溃而丢失的问题;同时,可以减少客户端写日志带来的IO消耗,减少写日志而产生的卡顿问题,提高用户体验。
为解决上述技术问题,本发明所采用的技术方案是:
一种客户端日志不易失的存储方法,其特点是包括以下步骤:
步骤A,找到日志目录下的起过渡作用的日志文件,根据MMAP规则将该起过渡作用的日志文件映射到MMAP内存中;
步骤B,接收到日志数据时,将该日志数据写入MMAP内存中;
步骤C,MMAP内存将接收到的日志数据打印到所述起过渡作用的日志文件中;
步骤D,扫描日志目录中的日志文件,将扫描到的日志文件进行重命名。
文件内存映射(MMAP,map files or device into memory)是一种内存映射文件的方法,可以将一个文件或者其它对象映射进内存。由于MMAP技术的特点,在运行过程中,系统会将MMAP内存中缓存的数据强行输出到磁盘,因此,借由上述方法,即使客户端崩溃,系统也会将MMAP内存中缓存的数据同步到磁盘中,防止在写日志过程中进程关闭而丢失部分日志信息。
进一步地,所述步骤C中,首先判断MMAP内存的内存是否已满,若否,则跳转至步骤B;若是,则MMAP内存将接收到的日志数据打印到所述起过渡作用的日志文件中。
进一步地,所述步骤A中,若在日志目录下没有找到所述起过渡作用的日志文件,则在系统初始化时调用系统MMAP创建一个MMAP内存,并将创建的MMAP内存映射到系统的一个文本文件中,对该文本文件进行命名并将其作为所述的起过渡作用的日志文件。
进一步地,在步骤D之后还包括步骤F,在日志目录下创新创建一个起过渡作用的日志文件,将新创建的日志文件映射到所述MMAP内存中,并将MMAP内存的数据圈闭清零,重复步骤B~步骤D。
借由上述结构,MMAP内存可重复使用,不用增长内存就可以写多个日志文件,减少客户端写日志带来的IO消耗,减少写日志而产生的卡顿问题,提高用户体验。
进一步地,在步骤B之前,还包括在MMAP内存中写入头部数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南快乐阳光互动娱乐传媒有限公司,未经湖南快乐阳光互动娱乐传媒有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910298001.1/2.html,转载请声明来源钻瓜专利网。