CN102880718B - 一种灵活日志的存贮和获取方法 - Google Patents

一种灵活日志的存贮和获取方法 Download PDF

Info

Publication number
CN102880718B
CN102880718B CN201210387171.5A CN201210387171A CN102880718B CN 102880718 B CN102880718 B CN 102880718B CN 201210387171 A CN201210387171 A CN 201210387171A CN 102880718 B CN102880718 B CN 102880718B
Authority
CN
China
Prior art keywords
data
file
read
log files
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210387171.5A
Other languages
English (en)
Other versions
CN102880718A (zh
Inventor
潘海东
梅春
任剑锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Interactive Encyclopedia Network Technology Co.,Ltd.
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Interactive Online (beijing) Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Interactive Online (beijing) Technology Co Ltd filed Critical Interactive Online (beijing) Technology Co Ltd
Priority to CN201210387171.5A priority Critical patent/CN102880718B/zh
Publication of CN102880718A publication Critical patent/CN102880718A/zh
Application granted granted Critical
Publication of CN102880718B publication Critical patent/CN102880718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种灵活日志的存贮和获取方法,该方法包括数据的写入过程和数据的读取过程。本发明基于多文件散列的基础,在需要众多文件需要进行频繁读写时,而且文件读写的入口单一的情况下,提供一种基于索引的文件存贮和读取方式,不仅便利的散列存贮文件,还能实现轻松的读取需要的日志。

Description

一种灵活日志的存贮和获取方法
技术领域
本发明涉及一种灵活日志的存贮和获取方法。
背景技术
增量日志,是指日志文件中的内容会随着时间的增加而增加,并非固定提供给一次性读取。日志文件作为数据沟通媒介,也就是说由一个或者一系列程序进行操作,产生一定的数据信息,存贮入日志文件,然后由一个或者多个文件,将数据读取,使得能够进行一系列的操作。目前比较常用日志的记录方式,大致有以下几种:1.将一堆内容顺序的将内容写入日志,然后另外一个程序读取指定日志,获取内容。此为记录成单一的日志文件。2.将日志文件按时间分割,比如按月、日、小时等,记录成为多个文件。3.日志文件以内容的某种标识分割,比如唯一ID、类型等记录成为多个文件。
单一日志文件的记录,当日志量过大,会造成单一文件过大,造成日志内容的读取和查找困难,也会有多进程写文件造成的日志内容不完整的问题。多个文件记录,首先根据规则将文件分割成多个小文件,增加单个文件处理能力,而且数据散列得当,会减少文件独占造成的数据不完整问题。但是,文件散列,会造成文件内容索引困难,当文件数量过多,管理也会成为问题。
当针对数据文件某个通用的标识进行操作时,需要打开和分析每一个文件,获得想要的内容。比如当时数据的长度、写入时间、数据某个指定类型等,获得起来都很复杂,都需要找到相应的文件,在一堆文件中找到指定的内容,然后进行比对,效率非常的低。多个程序同时读同一套增量日志文件的时候,会因为日志节点而需要进行单独记录,导致多套程序和多个日志,需要的日志节点记录成为多对多的关系,无论用那种方式直接记录记录节点,都是一笔额外的开销,而且会引起附带问题。
发明内容
针对以上现有技术的不足,本发明提供一种灵活日志的存贮和获取方法,在增量日志文件作为数据沟通媒介的情况下,提供一种非单一日志文件的存贮和读取方法,实现读写异步,提高日志的读写能力,保障日志读写的完整可靠。
本发明的目的通过以下技术方案来实现:
一种灵活日志的存贮和获取方法,该方法包括数据的写入过程和数据的读取过程,
所述数据的写入过程包括:
1)根据数据提供的类型和唯一标识将此数据写入相应的数据文件,得到数据日志文件并获取数据日志文件的相关信息;
2)打开数据日志文件,将文件指针移动到文件末尾,记录一下文件指针在当前文件的位置,写入数据内容标识框的开头,然后写入日志数据,数据内容标识框的结尾,关闭数据日志文件;
3)打开总的索引日志文件,将索引日志文件指针移动到索引日志文件最后,同时移动到新的一行,此处是为了此次数据与之前数据的区分而通过换行的方式,也可以直接移动到最后的新一行,根据规则写入刚才获得到的数据信息,然后关闭索引文件。
所述数据的读取过程包括:
1)定时读取总的索引日志文件;
2)从总的索引日志文件中读取一行,同时将下一行的行号写入自己的日志文件;
3)根据从总的索引日志文件中读取的信息内容,进行数据操作判断,来决定是否读取数据日志文件,如何读取数据日志文件,以及读取数据日志文件之后的操作;
4)如果需要读取数据日志文件,则根据从总的索引日志文件中获得的文件名称和文件位标识,知道从哪个数据日志文件的什么位置开始读取数据,找到配对的数据内容标识框来获得一起完整的数据内容,然后根据数据内容来进行后续操作;
5)根据已经定义好的标记来判断,如果不需要读取数据日志文件,则直接进行下一行总的索引日志文件日志的读取。
进一步,所述数据写入过程步骤1中的数据日志文件的相关信息包括数据日志的文件名、内容写入的指针位置及需要的特殊数据标识。
进一步,所述数据写入过程步骤3中数据信息包括数据文件名称标识、数据文件此次写入文件的开始位置、特殊数据标识、写入时间中的一项或多项。
进一步,所述数据读取过程步骤5中定义好的标记包括特殊数据标识。
本发明的优点在于:
由于增加了索引机制,使得文件的读取更加迅速,在读取真正的数据文件之前,已经通过少量数据来判断是否需要读取大的数据文件。减少了读取每个增量数据文件的表示记录,减少了空间的占用,减少了磁盘的读取。大大降低了复杂数据日志的访问次数和数据传输量。
附图说明
图1:本发明方法流程图。
具体实施方式
本发明引入了索引和数据内容标识框,当日志散列记录的时候,每个记录数据的文件都有一个规则的唯一标识,例如使用数据提供的数据类型和唯一标识ID,日志文件名字例如为type_1.log type_2.log。所谓的索引概念,是指一个总的索引日志文件,例如名字起为index.log,里面放置的内容为以下内容:
每行存放一个数据索引,为了便于数据索引读取。
数据内容存放在哪个文件的标识,比如type、id,通过这个标识可以找到相应的文件。
数据文件存入相应文件的开始行数或者写入内容的位置标识。
附加信息,比如针对此种数据进行的动作,数据记录的时间,数据长度等,用于快速的数据筛选和处理。
数据内容标识框,是用在具体的数据文件存贮时候。在每次记录数据文件的开始和结束,加上特定的表示,将数据内容框起来,用于分隔每次写入的数据,便于获取数据的时候,保证数据完整性。
以下对写入数据和读取数据进行说明。
写入数据:
1.获得数据之后,根据数据提供的类型(type)和唯一标识(ID)知道了将此数据写入哪个数据文件。
2.根据获得的数据,可以得到数据相关内容,比如数据长度、数据中某个标识字段等等跟数据相关的所有信息。
3.打开数据记录文件,将文件指针移动到文件末尾,记录一下文件指针在当前文件的位置,写入数据内容标识框的开头,然后写入日志数据,然后写入数据内容标识框的结尾,关闭数据文件。
4.打开index.log的索引文件,将文件指针移动到文件最后,同时移动到新的一行,根据规则写入刚才获得到的数据信息,然后关闭索引文件。
一次数据文件写入结束。
读取数据:
1.定时读取index.log的记录文件。
2.从index.log中读取一行,同时将下一行的行号写入自己的日志文件。
3.根据从index.log中读取的信息内容,进行数据操作判断,来决定是否读取数据日志文件,如何读取数据日志文件,以及读取数据日志文件之后的操作。当然,还可以根据标识来决定是否需要读取数据日志文件。
4.如果需要读取数据文件,则根据从index.log中获得的文件名称和文件位标识,知道从哪个文件的哪个开始读取数据,找到配对的数据内容标识框来获得一起完整的数据内容。然后根据数据内容来进行后续操作。
5.如果不需要读取数据文件,则直接进行下一行index.log日志的读取。
下面以一个写日志程序,两个读日志程序为例对本发明进行说明。
一个写日志程序以下简称为MIS,根据monitor获得数据信息,写入日志文件,读日志程序以下简称为draw(用于画图)和alarm(用于报警)。
实现过程:
1.mis程序,每5分钟定时执行一次,执行配置好的monitor,获得相应的信息,数据内容包含执行结果的所有内容,例如:服务器信息、服务器状态、要监控的数据内容、是否要报警、是否画图。
2.mis程序写入的日志文件名称为monitor_id.log。
3.本次试用数据内容标识框开始为###start###结束为###end###。
4.使用的日志索引文件为index.log。
5.Mis系统将数据内容加上数据内容标识框写入monitor_id.log中,同时将数据ID、是否报警(0不报警1报警)、是否画图(0不画图1画图)、数据记录开始位置,写入到index.log中。
6.Mis系统写入文件的过程,不理会有多少个程序读取日志。
7.Draw和alarm的日志读入方式一致。均只关注index.log文件,每隔一分钟读取一次index.log文件,判断最后一行位置是否大于本程序记录的标识。如果等于则等待一分钟后继续读取,如果发现大于,则进行index.Log文件的读取。
8.Draw和alarm根据自身记录的index.log日志记录开始处,获得一行记录,根据标识判断是否要画图或者报警。如果不画图和报警,则读取下一跳记录。如果进行画图和报警,则根据内容,找到相对应的id,拼成monitor_id.log来找到log文件,同时根据文件指针位置,找到从哪里开始获取数据,先找到###start###,然后一直寻找,直到找到###end###,获得一次完整的日志数据。
9.Draw和alarm根据日志数据内容,进行自身的画图和报警工作。
10.Draw和alarm读取index.log的程序,如果发现读取index.log并未读取到尾部,则继续读取,同时把每次读取的行数开头记录本身的标识文件,然后重复之前是否报警和画图的判断,直到index.log被读取到了尾部,则读取程序Draw和alarm休息一秒,然后继续之前的动作,循环进行数据读取。
假如写了一万个文件,有10组程序来读取,之前的方法,10组程序将一万个程序读取一遍,则首先要产生10*一万的数据标识记录。而管理数据标识记录本身,就是一个复杂的过程。本发明只需要10组程序针对一个数据索引文件index.log写一个自身的读取表示即可,减少的数据量为10*一万–10;这里牵涉到数据内容以及磁盘读写此数。
如果数据中有一种判断,来判定是否要读取日志文件,而每次的数据内容为1K,假定有50%的数据文件不需要读取,则本发明可以减少10*一万*50%*1k的数据传输量。
本发明是以多文件散列为基础,在需要众多文件需要进行频繁读写时,而且文件读写的入口单一的情况下,提供一种基于索引的文件存贮和读取方式,不仅便于散列的存贮文件,还能实现轻松的读取需要的日志。
应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210387171.5A CN102880718B (zh) 2012-10-12 2012-10-12 一种灵活日志的存贮和获取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210387171.5A CN102880718B (zh) 2012-10-12 2012-10-12 一种灵活日志的存贮和获取方法

Publications (2)

Publication Number Publication Date
CN102880718A CN102880718A (zh) 2013-01-16
CN102880718B true CN102880718B (zh) 2015-09-02

Family

ID=47482044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210387171.5A Active CN102880718B (zh) 2012-10-12 2012-10-12 一种灵活日志的存贮和获取方法

Country Status (1)

Country Link
CN (1) CN102880718B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714878B (zh) * 2013-12-11 2017-11-21 阿里巴巴集团控股有限公司 一种收集日志数据的方法及装置
CN104283719A (zh) * 2014-10-28 2015-01-14 北京国双科技有限公司 一种日志的处理方法、装置及服务器
CN105071966B (zh) * 2015-08-10 2018-07-17 浪潮(北京)电子信息产业有限公司 一种日志信息管理方法及日志抽取服务器
CN106777049B (zh) * 2016-12-09 2021-01-01 武汉斗鱼网络科技有限公司 一种避免重复日志输出的处理方法及系统
CN108228613B (zh) * 2016-12-14 2021-12-07 北京国双科技有限公司 数据的读取方法及装置
CN113342768B (zh) * 2021-06-01 2023-10-10 北京奇艺世纪科技有限公司 一种日志读取方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916440A (ja) * 1995-06-30 1997-01-17 Meidensha Corp ロギングシステム
CN101416179A (zh) * 2006-04-06 2009-04-22 Nhn公司 用来向每个用户提供调整推荐字的系统和方法及记录用来执行上述方法的程序的计算机可读记录介质
CN101459557A (zh) * 2008-11-29 2009-06-17 成都市华为赛门铁克科技有限公司 一种安全日志集中存储方法及装置
CN101620617A (zh) * 2009-07-28 2010-01-06 中兴通讯股份有限公司 日志文件的查询和处理的方法及装置
CN102609502A (zh) * 2012-02-02 2012-07-25 深圳市中兴移动通信有限公司 基于日志方式的移动终端桌面搜索方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916440A (ja) * 1995-06-30 1997-01-17 Meidensha Corp ロギングシステム
CN101416179A (zh) * 2006-04-06 2009-04-22 Nhn公司 用来向每个用户提供调整推荐字的系统和方法及记录用来执行上述方法的程序的计算机可读记录介质
CN101459557A (zh) * 2008-11-29 2009-06-17 成都市华为赛门铁克科技有限公司 一种安全日志集中存储方法及装置
CN101620617A (zh) * 2009-07-28 2010-01-06 中兴通讯股份有限公司 日志文件的查询和处理的方法及装置
CN102609502A (zh) * 2012-02-02 2012-07-25 深圳市中兴移动通信有限公司 基于日志方式的移动终端桌面搜索方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
海量分布式日志检索技术的研究;王荣德;《中国优秀硕士学位论文全文数据库》;中国学术期刊电子杂志社;20110331(第3期);全文 *

Also Published As

Publication number Publication date
CN102880718A (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
CN102880718B (zh) 一种灵活日志的存贮和获取方法
CN111209344A (zh) 数据同步方法及装置
RU2014145359A (ru) Способ отправки данных, способ приема данных и устройство хранения данных
CN105488210B (zh) 一种批量数据匹配方法及装置
CN103577310A (zh) 记录软件调试日志的方法以及装置
KR20140053888A (ko) 판식 파일중 구조화 정보 획득방법 및 장치
CN103838780A (zh) 数据库的数据恢复方法及相关的设备
CN103617122B (zh) 一种源代码的比对方法
CN104933077B (zh) 基于规则的多文件信息分析方法
CN106341684A (zh) 一种自动生成安卓电视测试脚本的方法及系统
CN108062323B (zh) 一种日志读取方法及装置
CN103856365A (zh) 客户终端接入设备自动测试方法和系统
CN111176901B (zh) 一种hdfs删除文件恢复方法、终端设备及存储介质
US20130144799A1 (en) Computing device and method for extracting patent rejection information
US10705738B2 (en) Method, apparatus, storage medium, and terminal for optimizing memory card performance
CN101777077A (zh) 嵌入式设备文件系统实现方法
CN105607957B (zh) 一种基于opc da的数据采集与监控系统
CN112632266B (zh) 数据写入方法、装置、计算机设备及可读存储介质
CN113032408B (zh) 数据处理方法、系统及设备
CN109408277B (zh) 一种aep内存的数据块链路特性测试方法
CN116933143B (zh) 一种飞行参数数据分类方法
CN111581942A (zh) 一种数据文件的比对方法
CN106970941B (zh) 一种销售数据对比方法及系统
CN115982096B (zh) 一种基于热点文件的实时数据库快照存储方法及系统
CN103312792A (zh) 从外接存储设备中读取文件的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: 100085 Haidian District on the road to information on the ground floor, building A7F, No. 28, Beijing

Patentee after: BEIJING HUDONG BAIKE NETWORK TECHNOLOGY CO.,LTD.

Address before: 100029 Chaoyang District, the stability of the door outside the court in the town of miracle Plaza, No. 1 Interactive Encyclopedia building, Fortune Plaza, Beijing

Patentee before: Hudong Online (Beijing) Technology Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District on the road to information on the ground floor, building A7F, No. 28, Beijing

Patentee after: Beijing Interactive Encyclopedia Network Technology Co.,Ltd.

Address before: 100085 Haidian District on the road to information on the ground floor, building A7F, No. 28, Beijing

Patentee before: BEIJING HUDONG BAIKE NETWORK TECHNOLOGY CO.,LTD.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190924

Address after: 100041, room 2, building 3, building 30, Xing Xing street, Shijingshan District, Beijing,

Patentee after: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

Address before: 100085 Haidian District on the road to information on the ground floor, building A7F, No. 28, Beijing

Patentee before: Beijing Interactive Encyclopedia Network Technology Co.,Ltd.