一种日志文件采集方法及装置
文献发布时间:2023-06-19 18:32:25
技术领域
本文涉及计算机信息处理技术领域,尤其涉及一种日志文件采集方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着大数据技术的不断发展,日志成为大数据分析、智能运维等领域的重要数据源。而在日志分析领域,一个优秀的日志采集工具必不可少。在文本日志采集过程中,为了减少数据重复和数据丢失,需要在内存中记录每个日志文件所采集到的位置,并定期进行持久化,以便在采集工具重新启动后可以实现断点续传。
由于内存中不能一直保存所有日志文件的采集位置,所以通常日志采集工具会根据文件的最后修改时间来将日志文件移出内存,大于所设定时间阈值未发生修改的文件认为已采集完毕,从内存中移除。但是在以下场景,会引起数据采集的不准确:一、日志文件在达到设定的文件移出内存时间阈值后被移出内存,但之后又有了修改,就会作为新文件被重新采集,引起数据重复;二、在linux、unix操作系统,日志文件的唯一标识(inode),在此日志被删除后会复用,现有技术中,日志文件的采集位置存储于内存中,且需要等待日志文件最后修改时间与当前时间之间时间差超过预先设定的文件关闭时间阈值close_inactive以及文件移出内存时间阈值clean_inactive之后,才会将内存中的日志文件采集位置删除,该种方式存在如下缺陷:如果日志文件的采集位置还未被移出内存,该日志文件就已经被删除且新生成的日志文件又复用了这个唯一标识(inode),那采集工具就会认为这个新文件还是内存中记录的那个文件,从当前记录的偏移量采集日志,导致数据丢失。
发明内容
本文用于解决现有技术中内存中日志文件的采集位置移除存在滞后性,容易出现误采集,进而导致数据丢失的问题。
为了解决上述技术问题,本文的第一方面提供一种日志文件采集方法,包括:
打开满足预设条件的日志文件时新建文件对象,将文件对象记录于内存的待读取文件列表中,其中,所述文件对象至少包括文件名、文件标识、待采集路径、文件句柄及采集位置;
循环遍历所述待读取文件列表,根据遍历到的文件对象采集日志文件;
循环遍历所述待读取文件列表,对每一遍历到的文件对象执行如下判断:判断目标文件中是否包含该文件对象的文件名,其中,所述目标文件为该文件对象的待采集路径中的文件;若不包含,则从所述待读取文件列表中移除该文件对象。
作为本文进一步实施例中,判断目标文件中是否包含该文件对象的文件名还包括:若包含,则获取该目标文件中疑似文件的最后修改时间,并利用生成该文件对象的文件标识的方法生成该疑似文件的文件标识,其中,所述疑似文件为与该文件对象的文件名相同的文件;比较该文件对象的文件标识与该疑似文件的文件标识,若该文件对象的文件标识与该疑似文件的文件标识不同,则从所述待读取文件列表中移除该日志文件采集信息。
作为本文进一步实施例中,比较该文件对象的文件标识与该疑似文件的文件标识还包括:若该文件对象的文件标识与该疑似文件的文件标识相同,则执行如下处理:
计算该文件对象的最后修改时间与当前时间的时间差;
比较所述时间差与文件移出内存时间阈值,若所述时间差大于所述文件移出内存时间阈值,则关闭该文件对象的文件句柄,并从所述待读取文件列表中移除该文件对象;
若所述时间差小于或等于所述文件移出内存时间阈值,则比较所述时间差与文件关闭时间阈值,若所述时间差大于所述文件关闭时间阈值,则关闭该文件对象中的文件句柄。
作为本文进一步实施例中,所述文件移出内存时间阈值大于日志滚动时间间隔,所述文件关闭时间阈值小于所述文件移出内存时间阈值。
作为本文进一步实施例中,从所述待读取文件列表中移除该文件对象之前,还包括:
判断该文件对象的文件句柄是否已关闭,若是,则从所述待读取文件列表中移除该文件对象,反之,关闭该文件对象的文件句柄。
作为本文进一步实施例中,满足预设条件的日志文件生成过程包括:
获取符合待采集路径的所有日志文件;
遍历获取的日志文件,每遍历到一日志文件,比较该日志文件的最后修改时间距离当前时间的时长与文件关闭时间阈值,若该日志文件的最后修改时间距离当前时间的时长大于文件关闭时间阈值,则遍历下一日志文件,反之,确定该日志文件为满足预设条件的日志文件。
本文第二方面提供一种日志文件采集装置,包括:
读取单元,用于打开满足预设条件的日志文件时新建文件对象,将文件对象记录于内存的待读取文件列表中,其中,所述文件对象至少包括文件名、文件标识、待采集路径、文件句柄及采集位置;
采集单元,用于循环遍历所述待读取文件列表,根据遍历到的文件对象采集日志文件;
文件对象移除控制单元,用于循环遍历所述待读取文件列表,对每一遍历到的文件对象执行如下判断:判断目标文件中是否包含该文件对象的文件名,其中,所述目标文件为该文件对象的待采集路径中的文件;若不包含,则从所述待读取文件列表中移除该文件对象。
本文第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任一实施例所述日志文件采集方法的指令。
本文第四方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行根据前述任一实施例所述方法的指令。
本文第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现前述任一实施例所述方法。
本文提供的日志文件采集方法及装置,通过打开满足预设条件的日志文件时新建文件对象,将文件对象记录于内存的待读取文件列表中,其中,所述文件对象至少包括文件名、文件标识、待采集路径、文件句柄及采集位置;循环遍历所述待读取文件列表,根据遍历到的文件对象采集日志文件;循环遍历所述待读取文件列表,对每一遍历到的文件对象执行如下判断:判断目标文件中是否包含该文件对象的文件名,其中,所述目标文件为该文件对象的待采集路径中的文件;若不包含,则从所述待读取文件列表中移除该文件对象,本文能够保证每次循环采集完一次日志文件后,执行一次在内存的待读取文件列表中移除文件对象的过程,使得已删除日志文件的相关记录(文件对象)从内存中及时删除,避免后续依据相关记录误采集新生成日志文件,进而导致新生成日志文件部分信息未采集的问题,能够提高数据准确性并兼顾程序性能。
为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本文实施例日志文件采集方法的第一流程图;
图2示出了本文实施例满足预设条件日志文件的确定过程流程图;
图3示出了本文实施例日志文件采集方法的第二流程图;
图4示出了本文实施例日志文件采集方法的第三流程图;
图5示出了本文实施例日志文件采集装置的结构图;
图6示出了本文具体实施例的日志文件采集方法的流程图;
图7示出了本文实施例计算机设备的结构图。
附图符号说明:
510、读取单元;
520、采集单元;
530、文件对象移除控制单元;
702、计算机设备;
704、处理器;
706、存储器;
708、驱动机构;
710、输入/输出模块;
712、输入设备;
714、输出设备;
716、呈现设备;
718、图形用户接口;
720、网络接口;
722、通信链路;
724、通信总线。
具体实施方式
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
需要说明的是,本文的日志文件采集方法及装置可用于金融领域的日志文件采集,也可用于除金融领域之外的任意领域,本文的日志文件采集方法及装置的应用领域不做限定。
需要说明的是,本申请所涉及的日志文件,均为经用户授权或者经过各方充分授权的信息和数据。
现有技术中,在linux、unix操作系统,日志文件的唯一标识,在日志文件被删除后会复用,日志文件采集时,会在内存中记录日志文件的唯一标识及采集位置;如果日志文件的唯一标识及采集位置还未被移出内存,该日志文件就已经被删除且新生成的日志文件又复用了该唯一标识,那日志采集工具就会认为新日志文件还是内存中记录的文件,从唯一标识对应的采集位置继续采集日志,对于新日志文件而言,采集位置之前的数据并未采集,存在数据丢失的问题。具体的,假设采集一个日志文件a.log,它在linux操作系统中的唯一标识(inode)是12345,那么日志采集工具就会对这个日志文件进行读取,例如已经读取到第100个字节了,就会在内存中记录inode为12345的日志文件已经读取到第100个字节。下次扫描目录发现日志文件更新,则会从第100个字节继续向后读取。假如此时a.log被删除了,同时又产生了一个新日志文件名字同样叫做a.log且复用了inode号12345,那日志采集工具会认为新日志文件仍然是之前inode为12345的日志文件,则根据内存中inode的采集位置,从第100字节之后进行读取,此时会导致新日志文件中前100字节就无法被采集,既丢失了。
为了解决现有技术中内存中日志文件的采集位置移除存在滞后性,容易出现漏采集,进而导致数据丢失的问题。本文一实施例中,提供一种日志文件采集方法,应用于日志文件采集设备中,具体的,如图1所示,日志文件采集方法包括:
步骤110,确定满足预设条件的日志文件。
本步骤中,预设条件可由运维人员进行设定。一具体实施方式中,为了保证日志文件的有效性,如图2所示,确定满足预设条件的日志文件包括:
步骤201,获取符合待采集路径的所有日志文件,其中,待采集路径为日志文件的存储地址,可由运维人员指定。
步骤202,遍历获取的日志文件,每遍历到一日志文件,比较该日志文件的最后修改时间距离当前时间的时长与文件关闭时间阈值(即判断该日志文件的最后修改时间距离当前时间的时长是否大于文件关闭时间阈值),若该日志文件的最后修改时间距离当前时间的时长大于文件关闭时间阈值,则说明该日志文件在文件关闭时间阈值时长内未进行修改,该日志文件即为无效文件,遍历下一日志文件,反之,确定该日志文件为满足预设条件的日志文件。
详细的说,本文所述的各类时间均为时刻,时间阈值指的是一段时长。
步骤120,打开满足预设条件的日志文件时新建文件对象,将文件对象记录于内存的待读取文件列表中。
其中,文件对象可利用java语言实现,具体创建方法可参考现有技术,本文不再详述。
所述文件对象至少包括文件名、文件标识、待采集路径、文件句柄及采集位置。文件名为日志文件名称,可由符合预定规则的数字组成。文件标识用于唯一定位日志文件,待日志文件关闭或删除后,会被其它打开的日志文件复用。待采集路径为日志文件的存储地址,一待采集路径下可存储多个日志文件。文件句柄用于采集日志文件,具体的,先通过待采集路径访问日志文件的存储位置,然后确定该位置下文件标识的日志文件,最后根据采集位置获取日志文件对应数据。实施时,将文件对象中的采集位置信息持久化到磁盘中,以便日志文件采集程序启动后可从磁盘中获取日志文件采集位置,根据日志文件采集位置继续读取数据。
步骤130,循环遍历待读取文件列表,根据遍历到的文件对象采集日志文件。
文件对象中的文件句柄能够实现日志文件采集并上传至日志文件的采集需求方。需求方获得日志文件后可对日志文件进行分析。本文对需求方及日志文件具体分析过程不作限定。
步骤140,循环遍历待读取文件列表,对每一遍历到的文件对象执行如下判断:
步骤141,判断目标文件中是否包含该文件对象的文件名,其中,目标文件为该文件对象的待采集路径中的文件;若不包含,说明日志文件已被删除,则执行步骤142。本步骤判断目标文件中是否包含该文件对象的文件名即判断目标文件的文件名与该文件对象的文件名是否相同。
步骤142,从待读取文件列表中移除该文件对象。
本实施例能够保证每次循环采集完一次日志文件后,执行一次在内存的待读取文件列表中移除文件对象的过程,使得已删除日志文件的相关记录(文件对象)从内存中及时删除,避免后续依据相关记录误采集新生成日志文件,进而导致新生成日志文件部分信息未采集的问题,能够提高数据准确性并兼顾程序性能。
本文进一步实施例中,如图3所示,若目标文件中包含该文件对象的文件名,则因不同存储内容的日志文件可能存在文件名相同的情况(即日志文件的文件名不唯一),所以目标文件中包含的与文件对象相同文件名的日志文件不一定为文件对象中文件名相同的日志文件,为了进一步确定目标文件中与文件对象相同文件名的日志文件是否为文件对象中文件名相同的日志文件,执行如下处理:
步骤143,获取该目标文件中疑似文件的最后修改时间,并利用生成该文件对象的文件标识的方法生成该疑似文件的文件标识,其中,所述疑似文件为与该文件对象的文件名相同的文件。文件标识用于唯一表示文件对象,本文对文件标识的生成方法不做限定。
步骤144,比较该文件对象的文件标识与该疑似文件的文件标识,即判断该文件对象的文件标识与该疑似文件的文件标识是否相同,若该文件对象的文件标识与该疑似文件的文件标识不同,说明该文件对象指向的日志文件已经删除,与疑似文件不同,则从待读取文件列表中移除该日志文件采集信息。
进一步实施例中,步骤144比较该文件对象的文件标识与该疑似文件的文件标识还包括:若该文件对象的文件标识与该疑似文件的文件标识相同,说明文件对象中文件标识对应的日志文件并未删除,执行如下处理:
步骤145,计算该文件对象的最后修改时间与当前时间的时间差。
步骤146,比较时间差与文件移出内存时间阈值,即判断时间差是否大于文件移除内存时间阈值,若时间差大于文件移出内存时间阈值,则关闭该文件对象的文件句柄,并从待读取文件列表中移除该文件对象;
若时间差小于或等于文件移出内存时间阈值,则比较时间差与文件关闭时间阈值,即判断时间差是否大于文件关闭时间阈值,若时间差大于文件关闭时间阈值,则关闭该文件对象中的文件句柄。
本步骤中的文件移出内存时间阈值与文件关闭时间阈值由运维人员进行配置,只要保证文件关闭时间阈值小于文件移出内存时间阈值即可。
本文进一步实施例中,文件移出内存时间阈值考虑到现有技术中存在如下场景,日志文件在达到设定的文件移出内存时间阈值后会在内存中移除该日志文件的文件对象,但之后该日志文件又有了修改,该日志文件就会作为新日志文件进行采集,进而导致修改之前的数据会被重复采集,为了克服现有技术中日志文件的文件对象优先于日志文件完成修改前移除内存导致的数据重复采集的问题,看设置文件移出内存时间阈值大于日志滚动时间间隔文件移出内存时间阈值。
本文所述日志滚动时间间隔为新日志文件产生的时间间隔,即每间隔日志滚动时间间隔日志文件会结束写入,重新新建一日志文件继续写入。具体的,日志文件生成机制存在如下特点:为了避免日志文件太大,不利于查看及备份,在写入日志时,首先向一个文件中写入日志,在到达一定的条件后,例如到达了一定的时间,会新建一个文件继续写入日志,而之前的文件则不会继续写入(之前的文件常会在文件名中带有时间等信息,此文件称为归档重命名日志文件),此过程称为日志滚动,而滚动产生新文件的时间间隔即为日志滚动时间间隔。
本实施例通过设置文件移出内存时间阈值大于日志滚动时间间隔的方式能够保证文件移出内存时间阈值后日志文件不会再被修改,进而避免日志文件的文件对象删除后重复采集日志文件数据的问题。
本文进一步实施例中,如图4所示,上述步骤142及步骤144从待读取文件列表中移除该文件对象之前,还包括:
步骤142’(步骤144’),判断该文件对象的文件句柄是否已关闭,若是,则从待读取文件列表中移除该文件对象,反之,关闭该文件对象的文件句柄,待下次循环时从待读取文件列表中移除该文件对象。
基于同一发明构思,本文还提供一种日志文件采集装置,如下面的实施例所述。由于日志文件采集装置解决问题的原理与日志文件采集方法相似,因此装置的实施可以参见日志文件采集方法,重复之处不再赘述。具体的,如图5所示,日志文件采集装置,包括:
读取单元510,用于打开满足预设条件的日志文件时新建文件对象,将文件对象记录于内存的待读取文件列表中,其中,所述文件对象至少包括文件名、文件标识、待采集路径、文件句柄及采集位置;
采集单元520,用于循环遍历所述待读取文件列表,根据遍历到的文件对象采集日志文件;
文件对象移除控制单元530,用于循环遍历所述待读取文件列表,对每一遍历到的文件对象执行如下判断:
判断目标文件中是否包含该文件对象的文件名,其中,目标文件为该文件对象的待采集路径中的文件。
若不包含,则从待读取文件列表中移除该文件对象。
若包含,则获取该目标文件中疑似文件的最后修改时间,并利用生成该文件对象的文件标识的方法生成该疑似文件的文件标识,其中,疑似文件为与该文件对象的文件名相同的文件。
比较该文件对象的文件标识与该疑似文件的文件标识。
若该文件对象的文件标识与该疑似文件的文件标识不同,则从待读取文件列表中移除该日志文件采集信息。若该文件对象的文件标识与该疑似文件的文件标识相同,则执行如下处理:
计算该文件对象的最后修改时间与当前时间的时间差。
比较时间差与文件移出内存时间阈值,若时间差大于文件移出内存时间阈值,则关闭该文件对象的文件句柄,并从待读取文件列表中移除该文件对象,其中,文件移出内存时间阈值大于日志滚动时间间隔。若时间差小于或等于文件移出内存时间阈值,则比较时间差与文件关闭时间阈值,若时间差大于文件关闭时间阈值,则关闭该文件对象中的文件句柄。
进一步的,待读取文件列表中移除该文件对象过程包括:判断文件对象的文件句柄是否已关闭,若是,则从待读取文件列表中移除文件对象,反之,关闭文件对象的文件句柄。
本文提供的日志文件采集装置能够解决因文件对象移除内存后相关日志文件再次修改导致数据重复采集的问题以及因日志文件删除后日志文件的文件标识会被复用若内存中文件标识的文件对象未被及时删除,存在数据漏采集的问题。能够实现如下技术效果:
(1)提高日志文件采集的正确性。
将文件移出内存时间阈值设置为大于日志滚动时间间隔,这样保证日志文件在超过内存时间阈值后,不会再有写入,即不会被修改。
及时监测日志文件是否已删除,发现日志文件删除后,及时从内存中移除被删除的日志文件的文件对象,同时还可以排除由于日志文件正在被重命名而导致此刻文件不存在等特殊场景,以及在日志文件归档重命名后,及时将其移出内存。
(2)减少内存占用,减少打开的文件句柄。
在日志文件被删除及在日志文件归档重命名后,会及时将其句柄关闭并移出内存。进一步减少了内存的占用,也减少了需要打开的文件句柄数。
为了更清楚说明本文技术方案,下面以一具体实施例进行详细说明,具体的,如图6所示,日志文件采集方法包括:
步骤601,日志采集程序启动后,获取满足配置文件中待采集路径的所有日志文件。其中,配置文件包括待采集路径、文件移出内存时间阈值及文件关闭时间阈值,其中,文件移出内存时间阈值大于日志滚动时间间隔。
步骤602,循环遍历步骤601获取的所有日志文件,判断是否存在下一日志文件,若存在,则执行步骤603,否则,执行步骤605。
步骤603,判断当前循环到的日志文件的最后修改时间距离当前系统时间是否已经超过文件关闭时间阈值,如果当前循环到的日志文件的最后修改时间距离当前系统时间已经超过文件关闭时间阈值,则执行步骤602,否则执行步骤604。
步骤604,打开当前循环到的日志文件,新建文件对象并将文件对象放入内存中的待读取文件列表,返回继续执行步骤602。其中,文件对象包括文件名、文件标识、待采集路径、文件句柄及采集位置。
步骤605,循环遍历内存中的待读取文件列表,根据遍历到的对象文件读取每个日志文件中的内容,直到文件结尾。
步骤601至步骤605用于实现一次日志文件采集的过程。
步骤606,循环内存中的待读取文件列表,判断待读取文件列表中是否存在下一个文件对象,如果存在下一个文件对象,则执行步骤607,否则执行步骤601。
步骤607,判断循环到的文件对象(简记为文件对象X)记录的待采集路径中是否存在文件对象X记录的文件名,如果存在,说明通过文件名无法确定日志文件是否已被删除,则执行步骤611,否则,说明文件对象X打开的日志文件可能被删除或重命名,执行步骤608。
步骤608,判断文件对象X记录的文件句柄是否已经关闭,如果已经关闭,说明日志文件很可能已经被删除,则执行步骤610,否则,可能日志文件正在重命名,则执行步骤609。
步骤609,关闭文件对象X记录的文件句柄,返回步骤606。
通过步骤608及步骤609的实施能够识别日志文件正在被重命名的情况。
步骤610,从内存中的待读取文件列表中移除该文件对象X,返回步骤606。
步骤611,获取文件对象X的最后修改时间,将此时间记录为最后修改时间1。
步骤612,用该文件对象X记录的待读取路径及文件名获取该文件名对应的日志文件的唯一标识inode1。
步骤613,判断inode1和该文件对象X记录的文件标识是否相同,如果不相同,说明文件对象X对应的日志文件已经删除或已经重命名,则执行步骤614,否则执行步骤617。
步骤614,判断文件对象X记录的文件句柄是否已经关闭,如果已经关闭,则执行步骤616,否则执行步骤615。
步骤615,关闭文件对象X记录的文件句柄,返回步骤606。
步骤616,从内存中的待读取文件列表中移除该文件对象X,返回步骤606。
步骤617,判断最后修改时间1距离当前时间是否已经超过参数设置的文件移出内存时间阈值,如果已经超过则执行步骤618,否则执行步骤619。
步骤618,关闭此文件的句柄,并从内存中的待读取文件列表中移除该文件对象X,返回步骤606。
步骤619,判断最后修改时间1距离当前时间是否已经超过参数设置的文件关闭时间阈值,如果是则执行步骤620,否则执行步骤606。
步骤620,关闭该文件对象的文件句柄,返回步骤606。
本文一实施例中,还提供一种计算机设备,如图7所示,计算机设备702可以包括一个或多个处理器704,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器706,其用于存储诸如代码、设置、数据等之类的任何种类的信息,还用于存储前述任一实施例所述日志文件采集方法的指令。非限制性的,比如,存储器706可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理器704执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储器交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备702还可以包括输入/输出模块710(I/O),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714))。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口718(GUI)。在其他实施例中,还可以不包括输入/输出模块710(I/O)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。
通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
对应于图1、图3、图4、图6中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图1、图3、图4、图6所示的方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
- 日志文件采集方法、装置、可读存储介质及电子设备
- 一种清理日志文件缓存的方法及装置
- 一种轨迹采集方法和字迹采集装置
- 一种海洋科学研究用水质采集装置及其采集方法
- 一种植物表型采集装置及其采集方法
- 一种日志文件的采集方法及装置
- 日志文件的完整采集确认方法、装置及设备