CN109508446B - 一种日志处理方法和装置 - Google Patents
一种日志处理方法和装置 Download PDFInfo
- Publication number
- CN109508446B CN109508446B CN201710826895.8A CN201710826895A CN109508446B CN 109508446 B CN109508446 B CN 109508446B CN 201710826895 A CN201710826895 A CN 201710826895A CN 109508446 B CN109508446 B CN 109508446B
- Authority
- CN
- China
- Prior art keywords
- log
- line
- row
- identifier
- nth
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种日志处理方法和装置,方法包括:读取日志记录文件中的第N+1行日志;判断所述第N+1行日志与第N行日志是否属于同一条日志;若是,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为正整数;因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
Description
技术领域
本发明涉及日志管理技术领域,更具体的涉及一种日志处理方法和系统。
背景技术
日志作为程序中必不可少的一部分,可以起到监控程序的执行情况以及问题定位的作用。
现有的日志记录方法中,为了方便查看,在记录日志过程中通常会添加回车符。那么,在分析处理日志过程中,则需先去掉同一条日志中的回车符。
在现有技术中,通常采用正则表达式来全文匹配日志中的回车符,而正则表法式编写复杂,降低处理效率。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种日志处理方法和装置。
一种日志处理方法,包括:
读取日志记录文件中的第N+1行日志;
判断所述第N+1行日志与第N行日志是否属于同一条日志;
若是,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为正整数。
可选的,还包括:
若否,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
可选的,所述判断所述第N+1行日志与第N行日志是否属于同一条日志,包括:
判断所述第N+1行日志是否设置有日志开始标识;
若是,确定所述第N+1行日志与所述第N行日志属于不同条日志;
若否,确定所述第N+1行日志与所述第N行日志属于同一条日志。
可选的,还包括:
当所述缓存区中的日志缓存量满足预设容量时,将所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区。
可选的,所述读取日志记录文件中的第N+1行日志之前,还包括:
判断所述日志记录文件的当前读取位置是否设置有文件结束标识;
若是,将已写入所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区,结束当前处理流程。
一种日志处理装置,包括:
读取日志单元,用于读取日志记录文件中的第N+1行日志;
第一判断单元,用于判断所述第N+1行日志与第N行日志是否属于同一条日志;
第一写入单元,用于当所述第N+1行日志与第N行日志属于同一条日志时,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为正整数。
可选的,还包括:
第二写入单元,用于当所述第N+1行日志与第N行日志属于不同条日志时,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
可选的,所述第一判断单元,包括:
第一判断模块,用于判断所述第N+1行日志是否设置有日志开始标识;
第一确定模块,用于所述第N+1行日志设置有日志开始标识,确定所述第N+1行日志与所述第N行日志属于不同条日志;
第二确定模块,用于所述第N+1行日志未设置有日志开始标识,确定所述第N+1行日志与所述第N行日志属于同一条日志。
可选的,还包括:
第三写入单元,用于当所述缓存区中的日志缓存量满足预设容量时,将所述缓存区中的日志写入到日志处理文件中;
第一清空单元,用于清空所述缓存区。
可选的,还包括:
第二判断单元,用于判断所述日志记录文件的当前读取位置是否设置有文件结束标识;
第四写入单元,用于当所述日志记录文件的当前读取位置设置有文件结束标识时,将已写入所述缓存区中的日志写入到日志处理文件中;
第二清空单元,用于清空所述缓存区,结束当前处理流程。
一种存储介质,其上存储有程序,该程序被处理器执行时实现所述日志处理方法。
一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述日志处理方法。
借由上述技术方案,本发明提供的一种日志处理方法中,包括:读取日志记录文件中的第N+1行日志,判断第N+1行日志与第N行日志是否属于同一条日志;若是,将第N+1行日志写入到缓存区中第N行日志的结尾处;其中,日志记录文件中第N+1行日志与第N行日志之间具有目标标识符,如果第N+1行日志与第N行日志属于同一条日志,那么,写入到缓存区中的两行日志之间已经去掉目标标识符,该目标标识符可以为回车符,因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明一个实施例提供的一种日志处理方法的流程示意图;
图2示出了本发明一个实施例提供的日志记录文件的示意图;
图3示出了本发明一个实施例提供的缓存区的示意图;
图4示出了本发明另一实施例提供的一种日志处理方法的流程示意图;
图5示出了本发明又一实施例提供的一种日志处理方法的流程示意图;
图6示出了本发明一个实施例提供的一种日志处理装置的实例流程示意图;
图7示出了本发明一个实施例提供的一种日志处理装置的结构示意图;
图8示出了本发明另一实施例提供的一种日志处理装置的结构示意图;
图9示出了本发明又一实施例提供的一种日志处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明一个实施例公开了一种日志处理方法,如图1所示,该方法包括以下步骤:
步骤101:读取日志记录文件中的第N+1行日志;
其中,日志记录文件中记录有日志,而日志记录文件中所记录的第N+1行日志与第N行日志之间具有目标标识符,该目标标识符可以为回车符,当然,也可以为其他形式的标识符。
第N+1行日志与第N行日志为日志记录文件中相邻的两行日志;N为大于等于1的正整数。而本发明中提及的第N行日志表征为该行日志位于日志记录文件中的第N行,第N+1行日志表征为该行日志位于日志记录文件中的第N+1行。
图2示出了日志记录文件中所记录的日志形式;如图2所示,每两行相邻的日志之间具有回车符,具体的,第1行日志aaaaa与第2行日志bbbb之间具有回车符第2行日志bbbb与第3行日志ccccc之间具有回车符第3行日志ccccc与第4行日志ddd之间具有回车符需说明的是,图2仅是以“aaaaa”、“bbbb”、“ccccc”、“ddd”来表征日志,但是并不代表日志的具体形式即是如此。
本发明的目的为去掉日志记录文件中属于同一条日志的不同行之间的目标标识符,即目标标识符并不属于日志的一部分,因此,在读取日志记录文件中的某一行日志时,即便该行日志后面设置有目标标识符,所读取的该行日志也不会包含该目标标识符。
步骤102:判断第N+1行日志与第N行日志是否属于同一条日志,若是,执行步骤103;若否,执行步骤104;
其中,判断第N+1行日志与第N行日志是否属于同一条日志,可以包括以下过程:
判断第N+1行日志是否设置有日志开始标识,若设置有日志开始标识,则确定第N+1行日志与第N行日志属于不同条日志;若未设置有日志开始标识,则确定第N+1行日志与第N行日志属于同一条日志。
可选的,可以判断第N+1行日志的开始处是否设置有日志开始标识。
一般情况下,日志记录文件中所记录的日志格式如下:
[时间][日志类型][模块名称]日志正文
因此,作为一种实现方式,日志开始标识可以为时间标识,若确定第N+1行日志的开头设置有时间标识,确定第N+1行日志与第N行日志为属于不同条日志;若确定第+1行日志的开头未设置有时间标识,确定第N+1行日志与第N行日志属于同一条日志。
需说明的是,日志开始标识为时间标识适用于上述所给出的日志格式,当日志记录文件中所记录的日志格式为其他格式时,相应的,日志开始标识的实现类型也发生改变,例如,日志记录文件中所记录的日志格式如下:
[日志类型][时间][模块名称]日志正文
这种情况下,日志开始标识可以为类别标识。
步骤103:将所述第N+1行日志写入到缓存区中第N行日志的结尾处;
在本发明中,读取日志记录文件中的第N+1行日志前已经将日志记录文件中的前N行日志写入到缓存区中。当N等于1时,说明已将第1行日志读取并写入到缓存区中,由于第1行日志为日志记录文件的开始行,因此直接写入缓存区即可。
当第N+1行日志与第N行日志属于同一条日志时,直接将第N+1行日志写入到缓存区中第N行日志的结尾处,即两行日志之间没有目标标识符。
步骤104:在第N+1行日志前添加目标标识符,并将添加有目标标识符的第N+1行日志写入所述缓存区。
当第N+1行日志与第N行日志属于不同条日志时,为了区别两条日志,则在第N+1行日志前添加到目标标识符,并将添加有目标标识符的第N+1行日志写入所述缓存区,使得写入到缓存区中的第N行日志和第N+1行日志之间具有目标标识符。如果该目标标识符为回车符,在缓存区中,第N行日志和第N+1行日志为相邻行且之间具有回车符。
例如,当将图2所示的日志记录文件中的日志写入到缓存区后,假设第2行日志bbbb与第1行日志aaaaa属于同一条日志,那么,直接将第2行日志bbbb写入到缓存区中第1行日志aaaaa的结尾处,即写入缓存区中的第2行日志与第1行日志之间没有回车符;假设第3行日志ccccc与第2行日志bbbb属于不同条日志,那么,写入缓存区中的第3行日志与第2行日志之间具有回车符;假设第4行日志ddd与第3行日志ccccc属于同一条日志,那么,直接将第4行日志ddd写入到缓存区中第3行日志ccccc的结尾处,即写入缓存区中的第4行日志与第3行日志之间没有回车符,缓存区中如图3所示。
由此可见,本实施例提供的一种日志处理方法中,包括:读取日志记录文件中的第N+1行日志,判断第N+1行日志与第N行日志是否属于同一条日志;若是,将第N+1行日志写入到缓存区中第N行日志的结尾处;其中,日志记录文件中第N+1行日志与第N行日志之间具有目标标识符,如果第N+1行日志与第N行日志属于同一条日志,那么,写入到缓存区中的两行日志之间已经去掉目标标识符,该目标标识符可以为回车符,因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
本发明另一实施例公开了一种日志处理方法,如图4所示,该方法包括以下步骤:
步骤401:读取日志记录文件中的第N+1行日志;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为大于等于1的正整数。
步骤402:判断所述第N+1行日志与第N行日志是否属于同一条日志,若是,执行步骤403;若否,执行步骤404;
步骤403:将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
步骤404:在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的第N+1行日志写入到缓存区;
步骤405:当缓存区中的日志缓存量满足预设容量时,将缓存区中的日志写入到日志处理文件中;
需说明的是,日志记录文件和日志处理文件均为存储在磁盘上的文件,而缓存区为内存中开辟的一块区域,用于暂时缓存日志数据。
预设容量可以预先设定,具体容量值本发明不做限定。
步骤406:清空所述缓存区。
将缓存区中的日志写入到日志处理文件后,则清空缓存区,以便写入新的日志。
由此可见,本实施例提供的一种日志处理方法中,包括:读取日志记录文件中的第N+1行日志,判断第N+1行日志与第N行日志是否属于同一条日志;若是,将第N+1行日志写入到缓存区中第N行日志的结尾处;其中,日志记录文件中第N+1行日志与第N行日志之间具有目标标识符,如果第N+1行日志与第N行日志属于同一条日志,那么,写入到缓存区中的两行日志之间已经去掉目标标识符,该目标标识符可以为回车符,因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
本发明又一实施例公开了一种日志处理方法,如图5所示,该方法包括以下步骤:
步骤501:判断日志记录文件的当前读取位置是否设置有文件结束标识,若是,执行步骤502;若否,执行步骤504;
在读取日志记录文件中的第N+1行日志前,先判断日志记录文件的当前读取位置是否设置有文件结束标识,例如eof标志位,如果有,说明日志记录文件中的日志已全部读取完毕,那么直接执行步骤502和步骤503;如果没有,说明日志记录文件中存在未读取的日志,那么执行步骤504-步骤507。
步骤502:将已写入所述缓存区中的日志写入到日志处理文件中;
需说明的是,在读取日志记录文件中的第N+1行日志前,日志记录文件中的前N行日志已写入到缓存区中。当N等于1时,也就是说,在读取日志记录文件的第2行日志前,已将第1行日志写入到缓存区中,由于第1行日志为日志记录文件的开始行,因此,无需执行后续判断过程,直接写入缓存区即可,而在读取第2行日志前,需先判断判断日志记录文件的当前读取位置是否设置有文件结束标识。
步骤503:清空所述缓存区,结束当前处理流程;
步骤504:读取日志记录文件中的第N+1行日志;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为大于等于1的正整数。
步骤505:判断所述第N+1行日志与第N行日志是否属于同一条日志,若是,执行步骤506;若否,执行步骤507;
步骤506:将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
步骤507:在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的第N+1行日志写入到缓存区。
由此可见,本实施例提供的一种日志处理方法中,包括:读取日志记录文件中的第N+1行日志,判断第N+1行日志与第N行日志是否属于同一条日志;若是,将第N+1行日志写入到缓存区中第N行日志的结尾处;其中,日志记录文件中第N+1行日志与第N行日志之间具有目标标识符,如果第N+1行日志与第N行日志属于同一条日志,那么,写入到缓存区中的两行日志之间已经去掉目标标识符,该目标标识符可以为回车符,因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
本发明又一实施例公开一种日志处理方法的具体实例,如图6所示,该方法包括以下步骤:
步骤601:读取日志记录文件的第1行,将第1行日志写入到缓存区中;
步骤602:判断日志记录文件的当前读取位置是否设置有文件结束标识,如果是,执行步骤603;如果否,执行步骤605;
步骤603:将写入缓存区的日志写入到日志处理文件中;
步骤604:清空缓存区,结束当前处理流程;
步骤605:读取日志记录文件的下一行日志;
步骤606:判断当前读取的该行日志是否设置有日志开始标识,若否,执行步骤607和步骤609-610;若是,执行步骤608和步骤609-610;
步骤607:将读取的当前行日志写入到缓存区中;
步骤608:在当前行日志前添加目标标识符,并将添加有目标标识符的当前行日志写入缓存区;
步骤609:判断缓存区中的日志缓存量是否满足预设容量,若是,执行步骤610;若否,直接返回步骤602;
步骤610:将缓存区中的日志写入到日志处理文件中,清空缓存区,返回步骤602。
本申请图1、图4、图5、图6所示的上述四个实施例,是本发明一部分实施例,而不是全部的实施例。基于上述实施例,本领域普通技术人员在没有做出创造性劳动前提下,可以对上述实施例中的各步骤进行灵活组合,从而可以得到多个其他实施例;并且,由此得到的所有其他实施例,均属于本发明保护的范围。
与上述一种日志处理方法对应的,本发明还提供了一种日志处理装置,具体的,通过以下实施例进行描述:
本发明一个实施例提供了一种日志处理装置,如图7所示,该装置包括:读取日志单元701、第一判断单元702以及第一写入单元703;其中:
读取日志单元701,用于读取日志记录文件中的第N+1行日志;
其中,日志记录文件中记录有日志,而日志记录文件中所记录的第N+1行日志与第N行日志之间具有目标标识符,该目标标识符可以为回车符,当然,也可以为其他形式的标识符。
第N+1行日志与第N行日志为日志记录文件中相邻的两行日志;N为大于等于1的正整数。而本发明中提及的第N行日志表征为该行日志位于日志记录文件中的第N行,第N+1行日志表征为该行日志位于日志记录文件中的第N+1行。
本发明的目的为去掉日志记录文件中属于同一条日志的不同行之间的目标标识符,即目标标识符并不属于日志的一部分,因此,在读取日志记录文件中的某一行日志时,即便该行日志后面设置有目标标识符,所读取的该行日志也不会包含该目标标识符。
第一判断单元702,用于判断所述第N+1行日志与第N行日志是否属于同一条日志;
作为一种实现方式,第一判断单元702包括第一判断模块、第一确定模块以及第二确定模块;其中,第一判断模块,用于判断所述第N+1行日志是否设置有日志开始标识;第一确定模块,用于所述第N+1行日志设置有日志开始标识,确定所述第N+1行日志与所述第N行日志属于不同条日志;第二确定模块,用于所述第N+1行日志未设置有日志开始标识,确定所述第N+1行日志与所述第N行日志属于同一条日志。
可选的,第一判断模块可以用于判断第N+1行日志的开始处是否设置有日志开始标识。
日志开始标识具体可以为时间标识。
第一写入单元703,用于当所述第N+1行日志与第N行日志属于同一条日志时,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处。
在本发明中,读取日志记录文件中的第N+1行日志前已经将日志记录文件中的前N行日志写入到缓存区中。当N等于1时,说明已将第1行日志读取并写入到缓存区中,由于第1行日志为日志记录文件的开始行,因此直接写入缓存区即可。
当第N+1行日志与第N行日志属于同一条日志时,第一写入单元703直接将第N+1行日志写入到缓存区中第N行日志的结尾处,即两行日志之间没有目标标识符。
可选的,一种日志处理装置还包括第二写入单元704;其中,第二写入单元704,用于当所述第N+1行日志与第N行日志属于不同条日志时,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
当第N+1行日志与第N行日志属于不同条日志时,为了区别两条日志,则第二写入单元704用于在第N+1行日志前添加到目标标识符,并将添加有目标标识符的第N+1行日志写入所述缓存区,使得写入到缓存区中的第N行日志和第N+1行日志之间具有目标标识符。如果该目标标识符为回车符,在缓存区中,第N行日志和第N+1行日志为相邻行且之间具有回车符。
由此可见,本实施例提供的一种日志处理装置中,通过读取日志记录文件中的第N+1行日志,判断第N+1行日志与第N行日志是否属于同一条日志;若是,将第N+1行日志写入到缓存区中第N行日志的结尾处;其中,日志记录文件中第N+1行日志与第N行日志之间具有目标标识符,如果第N+1行日志与第N行日志属于同一条日志,那么,写入到缓存区中的两行日志之间已经去掉目标标识符,该目标标识符可以为回车符,因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
本发明另一实施例提供了一种日志处理装置,如图8所示,该装置包括:读取日志单元801、第一判断单元802、第一写入单元803、第二写入单元804、第三写入单元805以及第一清空单元806;其中:
读取日志单元801,用于读取日志记录文件中的第N+1行日志;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为大于等于1的正整数。
第一判断单元802,用于判断所述第N+1行日志与第N行日志是否属于同一条日志;
第一写入单元803,用于当所述第N+1行日志与第N行日志属于同一条日志时,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
第二写入单元804,用于当所述第N+1行日志与第N行日志属于不同条日志时,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区;
第三写入单元805,用于当所述缓存区中的日志缓存量满足预设容量时,将所述缓存区中的日志写入到日志处理文件中;
需说明的是,日志记录文件和日志处理文件均为存储在磁盘上的文件,而缓存区为内存中开辟的一块区域,用于暂时缓存日志数据。
预设容量可以预先设定,具体容量值本发明不做限定。
第一清空单元806,用于清空所述缓存区。
将缓存区中的日志写入到日志处理文件后,则清空缓存区,以便写入新的日志。
由此可见,本实施例提供的一种日志处理装置中,通过读取日志记录文件中的第N+1行日志,判断第N+1行日志与第N行日志是否属于同一条日志;若是,将第N+1行日志写入到缓存区中第N行日志的结尾处;其中,日志记录文件中第N+1行日志与第N行日志之间具有目标标识符,如果第N+1行日志与第N行日志属于同一条日志,那么,写入到缓存区中的两行日志之间已经去掉目标标识符,该目标标识符可以为回车符,因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
本发明又一实施例提供了一种日志处理装置,如图9所示,该装置包括:第二判断单元901、第四写入单元902、第二清空单元903、读取日志单元904、第一判断单元905、第一写入单元906以及第二写入单元907;其中:
第二判断单元901,用于判断所述日志记录文件的当前读取位置是否设置有文件结束标识;
在读取日志记录文件中的第N+1行日志前,先判断日志记录文件的当前读取位置是否设置有文件结束标识,例如eof标志位,如果有,说明日志记录文件中的日志已全部读取完毕,那么直接触发第三写入单元902和第二清空单元903;如果没有,说明日志记录文件中存在未读取的日志,那么触发读取日志单元904、第一判断单元905、第一写入单元906以及第二写入单元907。
第四写入单元902,用于当所述日志记录文件的当前读取位置设置有文件结束标识时,将已写入所述缓存区中的日志写入到日志处理文件中;
需说明的是,在读取日志记录文件中的第N+1行日志前,日志记录文件中的前N行日志已写入到缓存区中。当N等于1时,也就是说,在读取日志记录文件的第2行日志前,已将第1行日志写入到缓存区中,由于第1行日志为日志记录文件的开始行,因此,无需执行后续判断过程,直接写入缓存区即可,而在读取第2行日志前,需先判断判断日志记录文件的当前读取位置是否设置有文件结束标识。
第二清空单元903,用于清空所述缓存区,结束当前处理流程;
读取日志单元904,用于读取日志记录文件中的第N+1行日志;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为大于等于1的正整数。
第一判断单元905,用于判断所述第N+1行日志与第N行日志是否属于同一条日志;
第一写入单元906,用于当所述第N+1行日志与第N行日志属于同一条日志时,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处。
第二写入单元907,用于当所述第N+1行日志与第N行日志属于不同条日志时,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
由此可见,本实施例提供的一种日志处理装置中,通过读取日志记录文件中的第N+1行日志,判断第N+1行日志与第N行日志是否属于同一条日志;若是,将第N+1行日志写入到缓存区中第N行日志的结尾处;其中,日志记录文件中第N+1行日志与第N行日志之间具有目标标识符,如果第N+1行日志与第N行日志属于同一条日志,那么,写入到缓存区中的两行日志之间已经去掉目标标识符,该目标标识符可以为回车符,因此,本发明能够顺序的读取日志记录文件中的每一行,并去掉同一条日志中的回车符,相对于现有技术中需要编写复杂的正则表达式来全文匹配日志中的回车符而言,提高了处理效率。
所述一种日志处理装置包括处理器和存储器,上述读取日志单元、第一判断单元、第一写入单元、第二写入单元、第三写入单元、第一清空单元、第二判断单元、第四写入单元和第二清空单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高了处理效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述一种日志处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述一种日志处理方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
读取日志记录文件中的第N+1行日志;
判断所述第N+1行日志与第N行日志是否属于同一条日志;
若是,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为大于等于1的正整数。
可选的,处理器执行程序时还可以实现以下步骤:
若否,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
可选的,所述判断所述第N+1行日志与第N行日志是否属于同一条日志,包括:
判断所述第N+1行日志是否设置有日志开始标识;
若是,确定所述第N+1行日志与所述第N行日志属于不同条日志;
若否,确定所述第N+1行日志与所述第N行日志属于同一条日志。
可选的,处理器执行程序时还可以实现以下步骤:
当所述缓存区中的日志缓存量满足预设容量时,将所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区。
可选的,处理器执行程序时还可以实现以下步骤:
判断所述日志记录文件的当前读取位置是否设置有文件结束标识;
若是,将已写入所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区,结束当前处理流程。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
读取日志记录文件中的第N+1行日志;
判断所述第N+1行日志与第N行日志是否属于同一条日志;
若是,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有所述目标标识符;所述N为大于等于1的正整数。
可选的,还可以有如下方法步骤的程序:
若否,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
可选的,所述判断所述第N+1行日志与第N行日志是否属于同一条日志,包括:
判断所述第N+1行日志是否设置有日志开始标识;
若是,确定所述第N+1行日志与所述第N行日志属于不同条日志;
若否,确定所述第N+1行日志与所述第N行日志属于同一条日志。
可选的,还可以有如下方法步骤的程序:
当所述缓存区中的日志缓存量满足预设容量时,将所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区。
可选的,还可以有如下方法步骤的程序:
判断所述日志记录文件的当前读取位置是否设置有文件结束标识;
若是,将已写入所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区,结束当前处理流程。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种日志处理方法,其特征在于,包括:
读取日志记录文件中的第N+1行日志;
判断所述第N+1行日志与第N行日志是否属于同一条日志;
若是,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有目标标识符;所述N为正整数,所述目标标识符包括回车符;
所述判断所述第N+1行日志与第N行日志是否属于同一条日志,包括:
判断所述第N+1行日志是否设置有日志开始标识;所述日志开始标识包括时间标识或类别标识;
若是,确定所述第N+1行日志与所述第N行日志属于不同条日志;
若否,确定所述第N+1行日志与所述第N行日志属于同一条日志。
2.根据权利要求1所述的方法,其特征在于,还包括:
若否,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
当所述缓存区中的日志缓存量满足预设容量时,将所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区。
4.根据权利要求1或2所述的方法,其特征在于,所述读取日志记录文件中的第N+1行日志之前,还包括:
判断所述日志记录文件的当前读取位置是否设置有文件结束标识;所述文件结束标识用于表征所述日志记录文件中的日志已全部读取完毕;
若是,将已写入所述缓存区中的日志写入到日志处理文件中;
清空所述缓存区,结束当前处理流程。
5.一种日志处理装置,其特征在于,包括:
读取日志单元,用于读取日志记录文件中的第N+1行日志;
第一判断单元,用于判断所述第N+1行日志与第N行日志是否属于同一条日志;
第一写入单元,用于当所述第N+1行日志与第N行日志属于同一条日志时,将所述第N+1行日志写入到缓存区中所述第N行日志的结尾处;
其中,所述日志记录文件中所记录的所述第N+1行日志与所述第N行日志相邻且两行之间具有目标标识符;所述N为正整数,所述目标标识符包括回车符;
所述第一判断单元,包括:
第一判断模块,用于判断所述第N+1行日志是否设置有日志开始标识;
第一确定模块,用于所述第N+1行日志设置有日志开始标识,确定所述第N+1行日志与所述第N行日志属于不同条日志;
第二确定模块,用于所述第N+1行日志未设置有日志开始标识,确定所述第N+1行日志与所述第N行日志属于同一条日志;
所述日志开始标识包括时间标识或类别标识。
6.根据权利要求5所述的装置,其特征在于,还包括:
第二写入单元,用于当所述第N+1行日志与第N行日志属于不同条日志时,在所述第N+1行日志前添加目标标识符,并将添加有所述目标标识符的所述第N+1行日志写入所述缓存区。
7.一种存储介质,其特征在于,其上存储有程序,该程序被处理器执行时实现如权利要求1-4任一项所述的日志处理方法。
8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1-4任一项所述的日志处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710826895.8A CN109508446B (zh) | 2017-09-14 | 2017-09-14 | 一种日志处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710826895.8A CN109508446B (zh) | 2017-09-14 | 2017-09-14 | 一种日志处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109508446A CN109508446A (zh) | 2019-03-22 |
CN109508446B true CN109508446B (zh) | 2023-04-18 |
Family
ID=65744413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710826895.8A Active CN109508446B (zh) | 2017-09-14 | 2017-09-14 | 一种日志处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109508446B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095471B (zh) * | 2020-01-09 | 2024-05-07 | 北京君正集成电路股份有限公司 | 一种提高检测模型效率的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100817562B1 (ko) * | 2007-03-22 | 2008-03-27 | 주식회사 이너버스 | 대용량 로그파일의 인덱싱 방법, 이를 내장한 컴퓨터가판독 가능한 기록매체 및 이를 수행하기 위한 인덱싱시스템 |
CN101605028A (zh) * | 2009-02-17 | 2009-12-16 | 北京安天电子设备有限公司 | 一种日志记录合并方法和系统 |
CN101625703B (zh) * | 2009-08-21 | 2011-02-09 | 华中科技大学 | 一种内存数据库的日志合并方法和系统 |
JP6221519B2 (ja) * | 2013-08-30 | 2017-11-01 | 日本電気株式会社 | 情報処理装置、ログ処理方法、及びプログラム |
CN104822156B (zh) * | 2015-04-01 | 2018-12-11 | 中国联合网络通信集团有限公司 | 一种用户行为分析的方法及装置 |
CN106294351A (zh) * | 2015-05-13 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 日志事件处理方法和装置 |
CN106815122A (zh) * | 2015-11-27 | 2017-06-09 | 株式会社东芝 | 日志记录装置 |
CN106844143A (zh) * | 2016-12-27 | 2017-06-13 | 微梦创科网络科技(中国)有限公司 | 一种日志去重处理方法及装置 |
-
2017
- 2017-09-14 CN CN201710826895.8A patent/CN109508446B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109508446A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101645043B (zh) | 写数据的方法、读数据的方法及存储设备 | |
CN108959118B (zh) | 一种数据写入的方法及装置 | |
CN107025230B (zh) | 网络爬虫的处理方法及装置 | |
CN103324533A (zh) | 分布式数据处理方法、装置及系统 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
CN113946552A (zh) | 数据处理方法及电子装置 | |
CN108874379B (zh) | 页面的处理方法及装置 | |
CN109508446B (zh) | 一种日志处理方法和装置 | |
CN111125115A (zh) | 一种基于区块链的数据存储方法、设备及介质 | |
CN108062323B (zh) | 一种日志读取方法及装置 | |
CN109445715B (zh) | 一种组合块的坏块处理方法及装置 | |
CN111563003A (zh) | 一种设备状态监控装置、方法、设备及介质 | |
CN114281242B (zh) | 存储器负载均衡的方法、装置和设备 | |
CN113434476B (zh) | 数据同步方法、装置、设备、系统、存储介质及程序产品 | |
CN105243011A (zh) | 内存泄露定位方法及装置 | |
CN113821193B (zh) | 一种信息生成的方法、装置和存储介质 | |
CN106202262B (zh) | 一种信息处理方法及电子设备 | |
CN110908587A (zh) | 一种用于存储时序数据的方法及其装置 | |
CN116302095A (zh) | 指令跳转判断方法、装置、电子设备及可读存储介质 | |
CN110765493B (zh) | 一种基于Linux预链接的文件基线防御方法、装置及存储设备 | |
CN111370049B (zh) | 一种eMMC芯片测试方法和装置 | |
CN107766216A (zh) | 一种用于获取应用执行信息的方法与设备 | |
CN111367463B (zh) | 一种存储空间管理方法及装置 | |
CN111367462B (zh) | 一种数据处理方法及装置 | |
CN110175053B (zh) | 图片加载方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |