一种用户日志时间戳容错方法及系统与流程

文档序号:15385029发布日期:2018-09-08 00:27阅读:165来源:国知局

本发明涉及终端用户日志文件领域,尤其涉及一种用户日志时间戳容错方法及系统。



背景技术:

在对用户日志信息进行分析时,日志的时间戳是重要的分析轴线。然而,由于终端设备经常会因为重启和系统故障等原因,造成时间戳出现错误,比如时间戳的年月日出现19700101等错误信息,这样会造成后期数据处理和分析错误和数据丢失现象。



技术实现要素:

本发明提供一种用户日志时间戳容错方法,对用户日志时间进行了检错纠错,解决了现有技术中由于用户日志时间戳出现错误引起后期数据处理分析错误和数据丢失的问题。具体的技术方案如下:

一种用户日志时间戳容错方法,包括:s100收集用户日志文件;s200对所述用户日志文件进行解压、解析,获取所述用户日志文件的时间戳;s300基于所述用户日志文件的存储路径,对所述用户日志文件的时间戳进行检错及纠错。

优选地,所述步骤s200包括:s210对所述用户日志文件进行解压,获取所述用户日志文件的名称;s220从所述用户日志文件的名称中解析出所述用户日志文件的时间信息,获得所述用户日志文件的时间戳。

优选地,所述步骤s300包括:s310获取所述用户日志文件的存储路径,截取所述用户日志文件的存储路径中的时间信息作为参考时间信息;s320判断所述用户日志文件的时间戳的时间信息是否与所述参考时间信息一致,若否,进入步骤s330;s330判定所述用户日志文件的时间戳有误,根据所述参考时间信息,修改所述用户日志文件的时间戳。

优选地,所述步骤s320包括:s321获取所述用户日志文件的时间戳中的年份信息;s322判断所述用户日志文件的时间戳中的年份信息是否与当前时间的年份信息一致;若是,进入步骤s323;否则,进入步骤s330;s323获取所述用户日志文件的时间戳中除年份外剩余时间信息,判断所述用户日志文件的时间戳中除年份外剩余时间信息是否与所述参考时间信息中对应的时间信息一致;若否,进入步骤s330。

优选地,所述用户日志文件的文件名信息包括三部分:时间信息、硬件id信息及软件版本号信息;其中,所述时间信息包括:年份信息、月份信息、日期信息、及小时信息。

此外,本发明还提供了一种用户日志时间戳容错系统,包括:收集模块,用于收集用户日志文件;解压解析模块,用于对所述收集模块收集的所述用户日志文件进行解压、解析,获取所述用户日志文件的时间戳;检错纠错模块,用于基于所述用户日志文件的存储路径,对所述解压解析模块获取的所述用户日志文件的时间戳进行检错及纠错。

优选地,所述解压解析模块包括:文件名获取子模块,用于对所述用户日志文件进行解压,获取所述用户日志文件的名称;时间戳获取子模块,用于从所述用户日志文件的名称中解析出所述用户日志文件的时间信息,获得所述用户日志文件的时间戳。

优选地,所述检错纠错模块包括:参考时间获取子模块,用于获取所述用户日志文件的存储路径,截取所述用户日志文件的存储路径中的时间信息作为参考时间信息;判断子模块,用于判断所述解压解析模块获取的所述用户日志文件的时间戳的时间信息是否与所述参考时间获取子模块获取的参考时间信息一致;若否,判定所述用户日志文件的时间戳有误;修改子模块,用于当所述判断子模块判定所述用户日志文件的时间戳有误时,根据所述参考时间信息,修改所述用户日志文件的时间戳。

优选地,所述判断子模块包括:第一获取单元,用于获取所述用户日志文件的时间戳中的年份信息;第一判断单元,用于判断所述第一获取单元获取的所述用户日志文件的时间戳中的年份信息是否与当前时间的年份信息一致;当判定所述用户日志文件的时间戳中的年份信息与当前时间的年份信息一致时,通过第二判断单元继续进行后续时间信息判断;当判定所述用户日志文件的时间戳中的年份信息与当前时间的年份信息不一致时,通过所述修改子模块修改所述用户日志文件的时间戳;第二获取单元,用于获取所述用户日志文件的时间戳中除年份外剩余时间信息;所述第二判断单元,用于当判定所述用户日志文件的时间戳中的年份信息与当前时间的年份信息一致时,判断所述第二获取单元获取的所述用户日志文件的时间戳中除年份外剩余时间信息是否与所述参考时间信息中对应的时间信息一致;当判定所述用户日志文件的时间戳中除年份信息外剩余时间信息与所述参考时间信息中对应的时间信息不一致时,通过所述修改子模块修改所述用户日志文件的时间戳。

优选地,所述用户日志文件的文件名信息包括三部分:时间信息、硬件id信息及软件版本号信息;其中,所述时间信息包括:年份信息、月份信息、日期信息、及小时信息。

本发明至少具备以下一项技术效果:

(1)本发明根据用户日志文件的存储路径,对用户日志文件的时间戳进行了检错纠错,避免了由于时间戳有误造成后期数据处理和分析错误的问题,也可以避免数据丢失的现象发生,实现了用户日志时间戳容错的目的。

(2)本发明通过监测用户日志中时间戳的年份信息是否与当前时间的年份相同,若不相同,则直接将时间戳中的年月日时时间信息替换为该用户日志的存储路径中的年月日时时间信息,从而获得修正后的用户日志时间戳,实现用户日志时间戳容错的目的,提升了检测的处理效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种用户日志时间戳容错方法的实施例的流程图;

图2为本发明一种用户日志时间戳容错方法的另一实施例的流程图;

图3为本发明一种用户日志时间戳容错方法的另一实施例的流程图;

图4为本发明一种用户日志时间戳容错方法的另一实施例的流程图;

图5为本发明一种用户日志时间戳容错系统的实施例的框图;

图6为本发明一种用户日志时间戳容错系统的另一实施例的框图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明公开了一种用户日志时间戳容错方法,实施例如图1所示,包括:

s100收集用户日志文件;

s200对所述用户日志文件进行解压、解析,获取所述用户日志文件的时间戳;

s300基于所述用户日志文件的存储路径,对所述用户日志文件的时间戳进行检错及纠错。

我们在数据处理时,一般是实时的处理,收集用户的日志文件时以在存储路径中包含时间信息的方式对用户日志文件进行存储。本发明正是基于这样一个存储机制来进行用户日志文件时间戳的检错纠错。比如说,现在是2018年3月2日16点20分,那么在2018年3月2日16点00分开始到2018年3月2日17点00分之前,这段时间的用户网络日志文件的存储路径中的后面部分是“2018/03/02/16/20/log_file.data”。这里的存储路径是由机器时间设定生成的,可以作为时间戳检测的标准。

本发明容错方法的另一实施例,如图2所示,包括:

s100收集用户日志文件;

s210对所述用户日志文件进行解压,获取所述用户日志文件的名称;

s220从所述用户日志文件的名称中解析出所述用户日志文件的时间信息,获得所述用户日志文件的时间戳;

s300基于所述用户日志文件的存储路径,对所述用户日志文件的时间戳进行检错及纠错。

我们的用户日志文件在命名时是按照一定的命名格式进行命名的,其文件名称中包含了用户网络日志文件的时间戳,具体的,收集上来的海量上行文件(用户日志文件)的命名格式是“yyyymmddhhminminss_x***x(硬件id)_va.b(软件版本号).data”。因此,我们可以从文件名中选取用户日志文件的时间信息,获得用户日志文件的时间戳。而由于终端设备出现重启或者系统故障等原因,可能会造成当时时间的初始化或者恢复覆盖,那么就可能出现错误的时间信息,比如出现19700101的错误时间,如此,终端产生的用户日志文件命名时就会出现时间信息的错误,对后续的数据处理和分析造成影响。因此,对于这种情况,我们需要对用户日志文件的时间戳进行检错和纠错。

本发明容错方法的另一实施例,如图3所示,包括:

s100收集用户日志文件;

s200对所述用户日志文件进行解压、解析,获取所述用户日志文件的时间戳;

s310获取所述用户日志文件的存储路径,截取所述用户日志文件的存储路径中的时间信息作为参考时间信息;

s320判断所述用户日志文件的时间戳的时间信息是否与所述参考时间信息一致,若否,进入步骤s330;

s330判定所述用户日志文件的时间戳有误,根据所述参考时间信息,修改所述用户日志文件的时间戳。

本实施例中,获取到用户日志文件的时间戳信息后,比对该时间戳是否与存储路径中的时间信息一致,具体的,比如获取到用户日志文件的时间戳信息:timestamp=“20171225210915”(代表的时间信息为2017年12月25日21时09分15秒);该用户日志文件的存储路径为:******/2017/12/28/21/log_file.data(代表的时间信息为2017年12月28日21时),在进行时间比对的时候,年份与年份比对、月份与月份比对、日期与日期比对、小时与小时比对,如此比对后发现,用户日志文件的时间戳中的时间信息与存储路径中的时间信息不一致,因此,判定该用户日志文件的时间戳中有误,从而以存储路径中的时间信息为参考时间,对时间戳中的时间信息进行修正。具体的,将时间戳修改为:timestamp=“20171228210915”。也就是将时间戳的时间信息中与参考时间信息不一致的时间点替换为参考时间信息点,于本实施例中,由于年月的时间点信息一致,从日期开始时间点信息出现不一致,因此,只要将时间戳中的日期及后面的小时进行了修改即可,由原来的2017年12月25日21时修改为2017年12月28日21时即可。对于时间戳中的分钟、秒等时间点信息,由于参考时间中没有这个时间点的信息,也就无从参考,则这部分时间点信息则无需检查修改。也就是说,只需对比用户日志文件的时间戳中的年月日时的时间信息是否与存储路径中的年月日时时间信息相同,如果相同,则说明时间戳无误,无需修改,如果不同,则说明时间戳有误,则可以直接将时间戳中的年月日时的时间信息替换为存储路径中的年月日时的时间信息(参考时间信息),从而修正了时间戳的时间信息,实现了用户日志时间戳容错的目的。

较佳的,如图4所示,在上述实施例的基础上,所述步骤s320包括:

s321获取所述用户日志文件的时间戳中的年份信息;

s322判断所述用户日志文件的时间戳中的年份信息是否与当前时间的年份信息一致;若是,进入步骤s323;否则,进入步骤s330;

s323获取所述用户日志文件的时间戳中除年份外剩余时间信息,判断所述用户日志文件的时间戳中除年份外剩余时间信息是否与所述参考时间信息中对应的时间信息一致;若否,进入步骤s330。

本实施例中,为了优化检错效率,加快对时间戳的检查处理效率,优先对年份进行检测,如果年份不一致,则无需进行后续核对,直接将用户日志文件的时间戳按照参考时间进行相应的修改即可,如果年份一致,则再核对后面的月份、日期、小时等时间信息。

优选地,上述任一实施例中,所述用户日志文件的文件名信息包括三部分:时间信息、硬件id信息及软件版本号信息;其中,所述时间信息包括:年份信息、月份信息、日期信息、及小时信息。

本发明容错方法的另一实施例,根据日志文件的存储路径是由机器时间设定的,例如~/year/month/day/hour/log_file.data,获取日志文件路径的用户日志时间戳,进行日志时间戳纠错。实施步骤具体包括:

步骤一、收集上来的海量上行文件,其命名格式是:“yyyymmddhhminminss_x***x(硬件id)_va.b(软件版本号).data”。

步骤二、对所收集到的海量上行文件进行解压机密解析。

步骤三、在解析过程中,通过用户日志时间戳容错机制进行日志记录时间检错和纠错,具体步骤如下:

(1)获取上行文件的名称,标记为filename。

(2)将filename分为三部分并保留下来,即timestamp=“yyyymmddhhminminss”,hardid=“x***x”(硬件id)和softwareversion=“va.b”(软件版本号)。

(3)截取timestamp的年份year=“yyyy”。由于这里为了提升程序的处理效率,机器时间年份变化较慢且数据处理是实时处理,因此这里设置当前年份为固定值即year_now=“2018”,每到相邻两年过渡期会更新一次。同时源日志存储路径格式为“~/year/month/day/hour/log_file.data”。

(4)判断year是否等于year_now,若相等,则时间戳正确,继续后续处理;否则,从源日志存储路径上截取year/month/day/hour,并进行日志时间戳纠错,即timestamp=“year”+“month”+“day”+“hour”+“minminss”。

步骤四、继续后续解析操作。

本实施例中,通过检测终端用户行日志中时间戳的前四位是否与当前时间的年份相同,若不相同,则将其年月日时替换为文件存储路径中截取的时间,从而组合成新的用户日志时间戳,实现用户日志时间戳容错的目的。

基于相同的技术构思,本发明还提供了一种用户日志时间戳容错系统,该容错系统可以采用本发明的用户日志时间戳容错方法,具体的,如图5所示,本发明的用户日志时间戳容错系统包括:收集模块100,用于收集用户日志文件;解压解析模块200,用于对所述收集模块100收集的所述用户日志文件进行解压、解析,获取所述用户日志文件的时间戳;检错纠错模块300,用于基于所述用户日志文件的存储路径,对所述解压解析模块200获取的所述用户日志文件的时间戳进行检错及纠错。

本发明的另一系统实施例如图6所示,在上述系统实施例的基础上,所述解压解析模块200包括:文件名获取子模块210,用于对所述用户日志文件进行解压,获取所述用户日志文件的名称;时间戳获取子模块220,用于从所述用户日志文件的名称中解析出所述用户日志文件的时间信息,获得所述用户日志文件的时间戳。

本发明的另一实施例,同样参见图6所示,在上述任一实施例的基础上,所述检错纠错模块300包括:参考时间获取子模块310,用于获取所述用户日志文件的存储路径,截取所述用户日志文件的存储路径中的时间信息作为参考时间信息;判断子模块320,用于判断所述解压解析模块200获取的所述用户日志文件的时间戳的时间信息是否与所述参考时间获取子模块获取的参考时间信息一致;若否,判定所述用户日志文件的时间戳有误;修改子模块330,用于当所述判断子模块320判定所述用户日志文件的时间戳有误时,根据所述参考时间信息,修改所述用户日志文件的时间戳。

较佳的,在上述实施例的基础上,所述判断子模块320包括:第一获取单元321,用于获取所述用户日志文件的时间戳中的年份信息;第一判断单元322,用于判断所述第一获取单元321获取的所述用户日志文件的时间戳中的年份信息是否与当前时间的年份信息一致;当判定所述用户日志文件的时间戳中的年份信息与当前时间的年份信息一致时,通过第二判断单元324继续进行后续时间信息判断;当判定所述用户日志文件的时间戳中的年份信息与当前时间的年份信息不一致时,通过所述修改子模块330修改所述用户日志文件的时间戳;第二获取单元323,用于获取所述用户日志文件的时间戳中除年份外剩余时间信息;所述第二判断单元324,用于当判定所述用户日志文件的时间戳中的年份信息与当前时间的年份信息一致时,判断所述第二获取单元323获取的所述用户日志文件的时间戳中除年份外剩余时间信息是否与所述参考时间信息中对应的时间信息一致;当判定所述用户日志文件的时间戳中除年份信息外剩余时间信息与所述参考时间信息中对应的时间信息不一致时,通过所述修改子模块330修改所述用户日志文件的时间戳。

本实施例中,通过检测终端用户日志文件中时间戳的前四位是否与当前机器时间的年份相同,若不相同,则将其年月日时替换为文件存储路径中截取的时间,从而组合成新的用户日志时间戳,实现用户日志时间戳容错的目的,提升处理效率。

上述任一容错系统实施例中,所述用户日志文件的文件名信息包括三部分:时间信息、硬件id信息及软件版本号信息;其中,所述时间信息包括:年份信息、月份信息、日期信息、及小时信息。

本发明的用户日志时间戳容错系统实施例与本发明的用户日志时间戳容错方法实施例对应,本发明的容错方法实施例的技术细节同样也适用于本发明的容错系统实施例,为减少重复,不再赘述。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1