一种灵活日志的存贮和获取方法技术

技术编号:8215738 阅读:184 留言:0更新日期:2013-01-17 13:44
本发明专利技术涉及一种灵活日志的存贮和获取方法,该方法包括数据的写入过程和数据的读取过程。本发明专利技术基于多文件散列的基础,在需要众多文件需要进行频繁读写时,而且文件读写的入口单一的情况下,提供一种基于索引的文件存贮和读取方式,不仅便利的散列存贮文件,还能实现轻松的读取需要的日志。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
增量日志,是指日志文件中的内容会随着时间的增加而增加,并非固定提供给一次性读取。日志文件作为数据沟通媒介,也就是说由一个或者一系列程序进行操作,产生一定的数据信息,存贮入日志文件,然后由一个或者多个文件,将数据读取,使得能够进行一系列的操作。目前比较常用日志的记录方式,大致有以下几种1.将一堆内容顺序的将内容写入日志,然后另外一个程序读取指定日志,获取内容。此为记录成单一的日志文件。2.将日志文件按时间分割,比如按月、日、小时等,记录成为多个文件。3.日志文件以内容的某种标识分割,比如唯一 ID、类型等记录成为多个文件。 单一日志文件的记录,当日志量过大,会造成单一文件过大,造成日志内容的读取和查找困难,也会有多进程写文件造成的日志内容不完整的问题。多个文件记录,首先根据规则将文件分割成多个小文件,增加单个文件处理能力,而且数据散列得当,会减少文件独占造成的数据不完整问题。但是,文件散列,会造成文件内容索引困难,当文件数量过多,管理也会成为问题。当针对数据文件某个通用的标识进行操作时,需要打开和分析每一个文件,获得想要的内容。比如当时数据的长度、写入时间、数据某个指定类型等,获得起来都很复杂,都需要找到相应的文件,在一堆文件中找到指定的内容,然后进行比对,效率非常的低。多个程序同时读同一套增量日志文件的时候,会因为日志节点而需要进行单独记录,导致多套程序和多个日志,需要的日志节点记录成为多对多的关系,无论用那种方式直接记录记录节点,都是一笔额外的开销,而且会引起附带问题。
技术实现思路
针对以上现有技术的不足,本专利技术提供,在增量日志文件作为数据沟通媒介的情况下,提供一种非单一日志文件的存贮和读取方法,实现读写异步,提高日志的读写能力,保障日志读写的完整可靠。本专利技术的目的通过以下技术方案来实现—种灵活日志的存贮和获取方法,该方法包括数据的写入过程和数据的读取过程,所述数据的写入过程包括I)根据数据提供的类型和唯一标识将此数据写入相应的数据文件,得到数据日志文件并获取数据日志文件的相关信息;2)打开数据日志文件,将文件指针移动到文件末尾,记录一下文件指针在当前文件的位置,写入数据内容标识框的开头,然后写入日志数据,数据内容标识框的结尾,关闭数据日志文件;3)打开总的索引日志文件,将索引日志文件指针移动到索引日志文件最后,同时移动到新的一行,此处是为了此次数据与之前数据的区分而通过换行的方式,也可以直接移动到最后的新一行,根据规则写入刚才获得到的数据信息,然后关闭索引文件。所述数据的读取过程包括I)定时读取总的索引日志文件;2)从总的索引日志文件中读取一行,同时将下一行的行号写入自己的日志文件;3)根据从总的索引日志文件中读取的信息内容,进行数据操作判断,来决定是否读取数据日志文件,如何读取数据日志文件,以及读取数据日志文件之后的操作;4)如果需要读取数据日志文件,则根据从总的索引日志文件中获得的文件名称和文件位标识,知道从哪个数据日志文件的什么位置开始读取数据,找到配对的数据内容标识框来获得一起完整的数据内容,然后根据数据内容来进行后续操作; 5)根据已经定义好的标记来判断,如果不需要读取数据日志文件,则直接进行下一行总的索引日志文件日志的读取。进一步,所述数据写入过程步骤I中的数据日志文件的相关信息包括数据日志的文件名、内容写入的指针位置及需要的特殊数据标识。进一步,所述数据写入过程步骤3中数据信息包括数据文件名称标识、数据文件此次写入文件的开始位置、特殊数据标识、写入时间中的一项或多项。进一步,所述数据读取过程步骤5中定义好的标记包括特殊数据标识。本专利技术的优点在于由于增加了索引机制,使得文件的读取更加迅速,在读取真正的数据文件之前,已经通过少量数据来判断是否需要读取大的数据文件。减少了读取每个增量数据文件的表示记录,减少了空间的占用,减少了磁盘的读取。大大降低了复杂数据日志的访问次数和数据传输量。附图说明图I :本专利技术方法流程图。具体实施例方式本专利技术引入了索引和数据内容标识框,当日志散列记录的时候,每个记录数据的文件都有一个规则的唯一表示,例如使用数据提供的数据类型和唯一标识ID,日志文件名字例如为type_l. log type_2. log。所谓的索引概念,是指一个总的索引日志文件,例如名字起为index, log,里面放置的内容为以下内容每行存放一个数据索引,为了便于数据索引读取。数据内容存放在哪个文件的标识,比如type、id,通过这个标标识可以找到相应的文件。数据文件存入相应文件的开始行数或者写入内容的位置标识。附加信息,比如针对此种数据进行的动作,数据记录的时间,数据长度等,用于快速的数据筛选和处理。数据内容标识框,是用在具体的数据文件存贮时候。在每次记录数据文件的开始和结束,加上特定的表示,将数据内容框起来,用于分隔每次写入的数据,便于获取数据的时候,保证数据完整性。以下对写入数据和读取数据进行说明。写入数据I.获得数据之后,根据数据提供的类型(type)和唯一标识(ID)知道了将此数据写入那个数据文件。2.根据获得的数据,可以得到数据相关内容,比如数据长度、数据中某个标识字段等等跟数据相关的所有信息。3.打开数据记录文件,将文件指针移动到文件末尾,记录一下文件指针在当前文件的位置,写入数据内容标识框的开头,然后写入日志数据,然后写入数据内容标识框的结尾,关闭数据文件。·4.打开index, log的索引文件,将文件指针移动到文件最后,同时移动到新的一行,根据规则写入刚才获得到的数据信息,然后关闭索引文件。一次数据文件写入结束。读取数据I.定时读取index, log的记录文件。2.从index, log中读取一行,同时将下一行的行号写入自己的日志文件。3.根据从index, log中读取的信息内容,进行数据操作判断,来决定是否读取数据日志文件,如何读取数据日志文件,以及读取数据日志文件之后的操作。当然,还可以根据标识来决定是否需要读取数据日志文件。4.如果需要读取数据文件,则根据从index, log中获得的文件名称和文件位标识,知道从哪个文件的哪个开始读取数据,找到配对的数据内容标识框来获得一起完整的数据内容。然后根据数据内容来进行后续操作。5.如果不需要读取数据文件,则直接进行下一行index, log日志的读取。下面以一个写日志程序,两个读日志程序为例对本专利技术进行说明。一个写日志程序一下简称为MIS,根据monitor获得数据信息,写入日志文件,读日志程序一下简称为draw (用于画图)和alarm (用于报警)。实现过程I. mis程序,每5分钟定时执行一次,执行配置好的monitor,获得相应的信息,数据内容包含执行结果的所有内容,例如服务器信息、服务器状态、要监控的数据内容、是否要报警、是否画图。2. mis程序写入的日志文件名称为monitor_id. log。3.本次试用数据内容标识框开始为结束为4.使用的日志索引文件为index, log。5. Mis系统将数据内容加上数据数据内容标识框写入monitor_id. log中,同时将数据ID、是否报警(O不报警I报警)、是否画图(O不画图I画图)、数据记录开始位置,写入到 index,本文档来自技高网...

【技术保护点】
一种灵活日志的存贮和获取方法,其特征在于,该方法包括数据的写入过程和数据的读取过程,所述数据的写入过程包括:1)根据数据提供的类型和唯一标识将此数据写入相应的数据文件,得到数据日志文件并获取数据日志文件的相关信息;2)打开数据日志文件,将文件指针移动到文件末尾,记录一下文件指针在当前文件的位置,写入数据内容标识框的开头,然后写入日志数据,数据内容标识框的结尾,关闭数据日志文件;3)打开总的索引日志文件,将索引日志文件指针移动到索引日志文件最后,同时移动到新的一行,根据规则写入刚才获得到的数据信息,然后关闭索引文件;所述数据的读取过程包括:1)定时读取总的索引日志文件;2)从总的索引日志文件中读取一行,同时将下一行的行号写入自己的日志文件;3)根据从总的索引日志文件中读取的信息内容,进行数据操作判断,来决定是否读取数据日志文件,如何读取数据日志文件,以及读取数据日志文件之后的操作;4)如果需要读取数据日志文件,则根据从总的索引日志文件中获得的文件名称和文件位标识,知道从哪个数据日志文件的什么位置开始读取数据,找到配对的数据内容标识框来获得一起完整的数据内容,然后根据数据内容来进行后续操作;5)根据已经定义好的标记来判断,如果不需要读取数据日志文件,则直接进行下一行总的索引日志文件日志的读取。...

【技术特征摘要】

【专利技术属性】
技术研发人员:潘海东梅春任剑锋
申请(专利权)人:互动在线北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1