CN109299052B - 日志切割方法、装置、计算机设备及存储介质 - Google Patents

日志切割方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109299052B
CN109299052B CN201811022546.1A CN201811022546A CN109299052B CN 109299052 B CN109299052 B CN 109299052B CN 201811022546 A CN201811022546 A CN 201811022546A CN 109299052 B CN109299052 B CN 109299052B
Authority
CN
China
Prior art keywords
log
log file
cutting
file
threshold value
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
CN201811022546.1A
Other languages
English (en)
Other versions
CN109299052A (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.)
Zhuhai Taihe Technology Co ltd
Original Assignee
Zhuhai Taihe 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 Zhuhai Taihe Technology Co ltd filed Critical Zhuhai Taihe Technology Co ltd
Priority to CN201811022546.1A priority Critical patent/CN109299052B/zh
Publication of CN109299052A publication Critical patent/CN109299052A/zh
Application granted granted Critical
Publication of CN109299052B publication Critical patent/CN109299052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种日志切割方法、装置、计算机设备及存储介质。所述方法包括:通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;判断所述第二日志文件的大小是否超过阈值;以及若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。通过实施本发明实施例的方法可通过预设切割脚本实施切割,降低性能损耗,有效地防止服务器宕机,提高测试效率效果。

Description

日志切割方法、装置、计算机设备及存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种日志切割方法、装置、计算机设备及存储介质。
背景技术
随着信息与科技的发展,人们的日常生活中,每天都与大量的数据密切接触。在信息时代里,每天都要生产巨量的数据,每天都要处理巨量的数据,这些巨量的数据存储在一个又一个的日志文件中。而日志文件的处理在如今的地位愈发重要,如果不能妥善地处理好日志文件,造成的数据丢失会导致不可估量的经济损失。在现有的日志处理方法中,随着系统的运行,所产生的日志越来越大,如果不对日志进行分割,删除的日志时候就必须一次性将整个日志删除,这样会导致丢失大量的宝贵信息。特别是在进行压力测试的时候,系统会产生大量的日志,当有多人同时查询日志时会导致服务器宕机,必须要人工处理才能继续进行,严重影响测试进度,且大日志不便于查询错因,影响工作效率。
发明内容
本发明实施例提供了一种日志切割方法、装置、计算机设备及存储介质,旨在解决进行压力测试时多人同时查询日志导致服务器宕机的问题。
第一方面,本发明实施例提供了一种日志切割方法,其包括:通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;判断所述第二日志文件的大小是否超过阈值;以及若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。
第二方面,本发明实施例还提供了一种日志切割装置,其包括:分割单元,用于通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;第一判断单元,用于判断所述第二日志文件的大小是否超过阈值;以及切割单元,用于若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述方法。
本发明实施例提供了一种日志切割方法、装置、计算机设备及存储介质。其中,所述方法包括:通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;判断所述第二日志文件的大小是否超过阈值;以及若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。本发明实施例由于通过预设切割脚本对日志文件进行切割,可实现通过预设切割脚本实施切割,降低性能损耗,有效地防止服务器宕机,提高测试效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的日志切割方法的流程示意图;
图2为本发明实施例提供的日志切割方法的子流程示意图;
图3为本发明实施例提供的日志切割方法的子流程示意图;
图4为本发明实施例提供的日志切割方法的子流程示意图;
图5为本发明实施例提供的日志切割方法的子流程示意图;
图6为本发明实施例提供的日志切割装置的示意性框图;
图7为本发明另一实施例提供的日志切割装置的示意性框图;
图8为本发明实施例提供的日志切割装置的执行单元的示意性框图;以及
图9为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本发明实施例提供的日志切割方法的流程示意图。如图所示,该方法包括以下步骤S110-130。
S110、通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志。
在一实施例中,定时任务是在固定时间或固定间隔时间执行指定任务的命令。实现定时任务首先要建立定时任务文件;然后配置定时任务文件的环境变量,配置环境变量包括设定间隔时间和需要执行的任务,例如配置每隔一小时执行预设切割脚本;最后由守护进程时刻检测是否有预设的任务需要执行,当达到了设定的间隔时间则执行指定的任务。本方案是基于Linux系统下的,在本方案中,定时任务文件指的是Crontab文件,守护进程指的是Crond进程,Crontab文件是用于设定执行时间和待执行任务的文件,Crond进程是用于周期性的执行指定任务或等待处理指定任务的一个守护进程。因此,在Linux系统中进行压力测试时会产生大量的日志文件,可通过定时任务周期性地执行预设切割脚本来实现日志文件的动态切割。
在一实施例中,如图2所示,所述步骤S110可包括步骤S111-S112。
S111、检测当前是否达到预设间隔时间。
在本实施例中,由守护进程等待执行任务,守护进程每分钟会定期检测是否有要执行的任务,如果有要执行的任务则自动执行该任务。其中,预设间隔时间为一小时,因为压力测试会产生大量的日志文件,需要设定足够短的间隔时间来应付大量产生的日志文件。
S112、若检测到当前达到预设间隔时间,则执行预设切割脚本。
在本实施例中,当守护进程检测到距离上次执行指定任务已一小时,则执行指定任务。在本方案中,预设切割脚本是定时任务指定要执行的任务,通过在定时任务文件环境变量配置中设定指定任务的路径为预设切割脚本的路径源,即可将预设切割脚本作为定时任务所要执行的指定任务。预设切割脚本指的是Shell脚本,Shell脚本是用户与Linux内核之间的交互媒介,Shell脚本可接收用户输入的切割命令并送入到Linux内核中去执行。Shell脚本相对于传统的日志切割工具包,如Log4j,不需要修改代码、配置,甚至稍加修改可以在其他应用中实现。Shell脚本具有简单性和通用性,可以简洁地表达复杂的操作,且可以不需要修改脚本就能在不同的系统上执行,即不仅可以在Linux系统上执行还可以在其他的操作系统上执行。在本实施例中,预设切割脚本中编写的是将日志文件进行切割的指令,在切割前需要先进行分割,首先暂停第一日志文件写入日志,然后将第一日志文件重命名为后缀为年月日时的第二日志文件,最后再创建一个与第一日志文件名称相同的新的空白的第一日志文件,并在新的第一日志文件中继续写入日志。
在一实施例中,如图3所示,步骤S112还包括以下步骤:S1121-S1123
S1121、暂停对当前生成的第一日志文件写入日志。
在一实施例中,当前生成的第一日志文件即正在写入日志的第一日志文件。在压力测试中,对于正在写入日志的第一日志文件先要暂停写入日志才能进行切割处理。具体地,是通过向正在写入日志的第一日志文件发送暂停写入线程信号量来暂停第一日志文件的写入。
在一实施例中,如图4所示,所述步骤S1121可包括步骤:S1121a-S1121b。
S1121a、创建暂停写入线程信号量。
在一实施例中,信号量是用于调协进程对共享资源的访问的一种机制,在多线程环境下使用以保证多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量;其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成上述过程,首先需要先创建一个暂停写入线程信号量。
S1121b、将所述暂停写入线程信号量发送至所述第一日志文件。
在一实施例中,创建好暂停写入线程信号量后,将暂停写入线程信号量发送至第一日志文件从而暂停了第一日志文件的写入。因为当暂停写入线程访问第一日志文件时,其他线程就必须等待暂停写入线程释放信号量才可访问第一日志文件,从而暂停了第一日志文件的写入。
S1122、将所述第一日志文件重命名作为第二日志文件。
在一实施例中,暂停第一日志文件写入日志后对第一日志文件进行重名命,重命名的规则为后缀加上年月日时以方便用户查找分割后的日志。例如,将pafa.log重命名为pafa.log.2018042401,将重命名后的日志文件作为第二日志文件。
S1123、重新创建一日志文件作为第一日志文件以供继续写入日志。
在一实施例中,创建一个新的、空的第一日志文件,重新创建的第一日志文件的名称与原来的第一日志文件的名称相同,例如,创建出一个新的pafa.log空文件,这样就可以使得系统继续从重新创建的第一日志文件中写入日志。而原来的第一日志文件转变成了第二日志文件从而完成了分割。
S120、判断所述第二日志文件的大小是否超过阈值。
在一实施例中,由于压力测试会产生大量的日志,即使是短短的一小时也会产生非常大的日志文件,因此还需要对分割后的第二日志文件进行切割。因此,日志切割是根据日志文件的大小来进行切割,首先要对日志文件的大小进行判断。即判断第二日志文件的大小是否超过阈值,当第二日志文件的大小超过了阈值,说明第二日志文件太大需要进行切割以方便用户查看切割后的日志,防止日志文件过大用户访问日志文件时服务器宕机。
S130、若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。
在一实施例中,如图5所示,所述步骤S130可包括步骤:S131-S135。
S131、创建第三日志文件;
在一实施例中,创建一个第三日志文件并进行命名,命名的规则为后缀加上年月日时序号,序号方便用户查找切割后的日志文件,提高工作效率。例如,将第三日志文件命名为pafa.log.201804240101。
S132、根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容,其中,所述第一日志内容的大小等于所述阈值。
在一实施例中,由于日志内容是根据写入字节的顺序进行排序的,因此,所划分的第一日志内容是按照写入字节顺序在阈值内的所有日志内容,所划分的第二日志内容是按照写入字节顺序在阈值外的所有日志内容。例如,日志文件中的日志内容有1000行,日志写入到500行时日志文件的大小等于阈值,那么前500行的日志内容作为第一日志内容,后500行的日志内容作为第二日志内容。
S133、将所述第二日志文件中的第二日志内容剪切到所述第三日志文件,并将包含有第二日志内容的第三日志文件作为新的第二日志文件。
在一实施例中,首先读取第二日志文件中的日志内容,将大于阈值部分的第二日志内容剪切到第三日志文件中。例如,阈值为200M,第二日志文件的大小为250M,那么将第二日志文件中大于200M的50M部分剪切到空的第三日志文件从而完成切割。由于不知道切割后的第三日志文件的大小是否小于阈值,因此将第三日志文件作为新的第二日志文件再一次进行阈值判断,判断是否需要再次切割。
S134、判断新的第二日志文件的大小是否超过阈值;
在一实施例中,继续判断新的第二日志文件大小是否超过阈值,若超过阈值,则需要再次切割,若未超过阈值,则切割完毕。
S135、若所述第二日志文件的大小超过阈值,返回到步骤S132。
在一实施例中,由于压力测试会短时间产生非常大的日志文件,往往切割完之后日志文件依然还是很大,因此将切割完后的日志文件再次进行切割进一步减小日志文件的大小,直到所有切割出来的日志文件都符合预设的阈值大小。在本实施例中,由于第三日志文件的大小依然很大,因此将第三日志文件作为新的第二日志文件返回到步骤S132中进行判断是否大于阈值,若大于阈值则继续进行切割,若小于阈值则完成切割。例如,第二日志文件为500M,那么首先创建一个第三日志文件并按序号命名为pafa.log.201804240101;然后将第二日志文件中大于200M的300M部分剪切到第三日志文件;在得到第三日志文件后将第三日志文件作为新的第二日志文件对第二日志文件的大小进行判断,而第二日志文件的大小为300M大于阈值200M,那么继续再创建一个第三日志文件并按序号命名为pafa.log.201804240102,最后将第二日志文件中大于200M的100M部分剪切到第三日志文件中;再次得到第三日志文件后将第三日志文件作为又一新的第二日志文件对第二日志文件的大小进行判断,而第二日志文件的大小为100M小于阈值,从而完成切割。
本发明实施例展示的日志切割方法,通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;判断所述第二日志文件的大小是否超过阈值;以及若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值,可以通过预设切割脚本实施切割,降低性能损耗,有效地防止服务器宕机,提高测试效率。
图6是本发明实施例提供的一种日志切割装置200的示意性框图。如图6所示,对应于以上日志切割方法,本发明还提供一种日志切割装置200。该日志切割装置200包括用于执行上述日志切割方法的单元,该装置可以被配置于服务器中。具体地,请参阅图6,该日志切割装置200包括分割单元210、第一判断单元220以及切割单元230。
分割单元210,用于通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志。
在一实施例中,定时任务是在固定时间或固定间隔时间执行指定任务的命令。实现定时任务首先要建立定时任务文件;然后配置定时任务文件的环境变量,配置环境变量包括设定间隔时间和需要执行的任务,例如配置每隔一小时执行预设切割脚本;最后由守护进程时刻检测是否有预设的任务需要执行,当达到了设定的间隔时间则执行指定的任务。本方案是基于Linux系统下的,在本方案中,定时任务文件指的是Crontab文件,守护进程指的是Crond进程,Crontab文件是用于设定执行时间和待执行任务的文件,Crond进程是用于周期性的执行指定任务或等待处理指定任务的一个守护进程。因此,在Linux系统中进行压力测试时会产生大量的日志文件,可通过定时任务周期性地执行预设切割脚本来实现日志文件的动态切割。
在一实施例中,如图7所示,所述分割单元210包括子单元:检测单元211和执行单元212。
检测单元211,用于检测当前时间是否达到预设间隔时间。
在本实施例中,由守护进程等待执行任务,守护进程每分钟会定期检测是否有要执行的任务,如果有要执行的任务则自动执行该任务。其中,预设间隔时间为一小时,因为压力测试会产生大量的日志文件,需要设定足够短的间隔时间来应付大量产生的日志文件。
执行单元212,用于若检测到当前时间达到预设间隔时间,则执行预设切割脚本。
在本实施例中,当守护进程检测到距离上次执行指定任务已一小时,则执行指定任务。在本方案中,预设切割脚本是定时任务指定要执行的任务,通过在定时任务文件环境变量配置中设定指定任务的路径为预设切割脚本的路径源,即可将预设切割脚本作为定时任务所要执行的指定任务。预设切割脚本指的是Shell脚本,Shell脚本是用户与Linux内核之间的交互媒介,Shell脚本可接收用户输入的切割命令并送入到Linux内核中去执行。Shell脚本相对于传统的日志切割工具包,如Log4j,不需要修改代码、配置,甚至稍加修改可以在其他应用中实现。Shell脚本具有简单性和通用性,可以简洁地表达复杂的操作,且可以不需要修改脚本就能在不同的系统上执行,即不仅可以在Linux系统上执行还可以在其他的操作系统上执行。在本实施例中,预设切割脚本中编写的是将日志文件进行切割的指令,在切割前需要先进行分割,首先暂停第一日志文件写入日志,然后将第一日志文件重命名为后缀为年月日时的第二日志文件,最后再创建一个与第一日志文件名称相同的新的空白的第一日志文件,并在新的第一日志文件中继续写入日志。
在一实施例中,如图8所示,所述执行单元212包括子单元:暂停单元2121、重命名单元2122以及重新创建单元2123。
暂停单元2121,用于暂停对当前生成的第一日志文件写入日志。
在一实施例中,当前生成的第一日志文件即正在写入日志的第一日志文件。在压力测试中,对于正在写入日志的第一日志文件先要暂停写入日志才能进行切割处理。具体地,是通过向正在写入日志的第一日志文件发送暂停写入线程信号量来暂停第一日志文件的写入。
在一实施例中,如图8所示,所述暂停单元2121包括子单元:信号量单元2121a和发送单元2121b。
信号量单元2121a,用于创建暂停写入线程信号量。
在一实施例中,信号量是用于调协进程对共享资源的访问的一种机制,在多线程环境下使用以保证多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量;其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成上述过程,首先需要先创建一个暂停写入线程信号量。
发送单元2121b,用于将所述暂停写入线程信号量发送至所述第一日志文件。
在一实施例中,创建好暂停写入线程信号量后,将暂停写入线程信号量发送至第一日志文件从而暂停了第一日志文件的写入。因为当暂停写入线程访问第一日志文件时,其他线程就必须等待暂停写入线程释放信号量才可访问第一日志文件,从而暂停了第一日志文件的写入。
重命名单元2122,用于将所述第一日志文件重命名作为第二日志文件。
在一实施例中,暂停第一日志文件写入日志后对第一日志文件进行重名命,重命名的规则为后缀加上年月日时以方便用户查找分割后的日志。例如,将pafa.log重命名为pafa.log.2018042401,将重命名后的日志文件作为第二日志文件。
重新创建单元2123,用于重新创建一日志文件作为第一日志文件以供继续写入日志。
在一实施例中,创建一个新的、空的第一日志文件,重新创建的第一日志文件的名称与原来的第一日志文件的名称相同,例如,创建出一个新的pafa.log空文件,这样就可以使得系统继续从重新创建的第一日志文件中写入日志。而原来的第一日志文件转变成了第二日志文件从而完成了分割。
判断单元220,用于判断所述第二日志文件的大小是否超过阈值。
在一实施例中,由于压力测试会产生大量的日志,即使是短短的一小时也会产生非常大的日志文件,因此需要对分割后的第二日志文件进行切割。因此,日志切割是根据日志文件的大小来进行切割,首先要对日志文件的大小进行判断。即判断第二日志文件的大小是否超过阈值,当第二日志文件的大小超过了阈值,说明第二日志文件太大需要进行切割以方便用户查看切割后的日志,防止日志文件过大用户访问日志文件时服务器宕机。
切割单元230,用于若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。
在一实施例中,如图7所示,所述切割单元230包括子单元:创建单元231、划分单元232、剪切单元233、第二判断单元234以及返回单元235。
创建单元231,用于创建第三日志文件;
在一实施例中,创建一个第三日志文件并进行命名,命名的规则为后缀加上年月日时序号,序号方便用户查找切割后的日志文件,提高工作效率。例如,将第三日志文件命名为pafa.log.201804240101。
划分单元232,用于根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容,其中,所述第一日志内容的大小等于所述阈值。
在一实施例中,由于日志内容是根据写入字节的顺序进行排序的,因此,所划分的第一日志内容是按照写入字节顺序在阈值内的所有日志内容,所划分的第二日志内容是按照写入字节顺序在阈值外的所有日志内容。例如,日志文件中的日志内容有1000行,日志写入到500行时日志文件的大小等于阈值,那么前500行的日志内容作为第一日志内容,后500行的日志内容作为第二日志内容。
剪切单元233,用于将所述第二日志文件中的第二日志内容剪切到所述第三日志文件,并将包含有第二日志内容的第三日志文件作为新的第二日志文件;
在一实施例中,首先读取第二日志文件中的日志内容,将大于阈值部分的第二日志内容剪切到第三日志文件中。例如,阈值为200M,第二日志文件的大小为250M,那么将第二日志文件中大于200M的50M部分剪切到空的第三日志文件从而完成切割。由于不知道切割后的第三日志文件的大小是否小于阈值,因此将第三日志文件作为新的第二日志文件再一次进行阈值判断,判断是否需要再次切割。
第二判断单元234,用于判断新的第二日志文件的大小是否超过阈值。
在一实施例中,继续判断新的第二日志文件大小是否超过阈值,若超过阈值,则需要再次切割,若未超过阈值,则切割完毕。
返回单元235,用于若所述第二日志文件的大小超过阈值,返回到划分单元232。
在一实施例中,由于压力测试会短时间产生非常大的日志文件,往往切割完之后日志文件依然还是很大,因此将切割完后的日志文件再次进行切割进一步减小日志文件的大小,直到所有切割出来的日志文件都符合预设的阈值大小。在本实施例中,由于第三日志文件的大小依然很大,因此将第三日志文件作为新的第二日志文件返回到划分单元232中进行判断是否大于阈值,若大于阈值则继续进行切割,若小于阈值则完成切割。例如,第二日志文件为500M,那么首先创建一个第三日志文件并按序号命名为pafa.log.201804240101;然后将第二日志文件中大于200M的300M部分剪切到第三日志文件;在得到第三日志文件后将第三日志文件作为新的第二日志文件对第二日志文件的大小进行判断,而第二日志文件的大小为300M大于阈值200M,那么继续再创建一个第三日志文件并按序号命名为pafa.log.201804240102,最后将第二日志文件中大于200M的100M部分剪切到第三日志文件中;再次得到第三日志文件后将第三日志文件作为又一新的第二日志文件对第二日志文件的大小进行判断,而第二日志文件的大小为100M小于阈值,从而完成切割。
本发明实施例展示的日志切割装置,通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;判断所述第二日志文件的大小是否超过阈值;以及若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值,可以通过预设切割脚本实施切割,降低性能损耗,有效地防止服务器宕机,提高测试效率。
上述日志切割装置可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种日志切割方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种日志切割方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;判断所述第二日志文件的大小是否超过阈值;以及若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。
在一实施例中,处理器502在实现所述通过定时任务在预设间隔时间执行预设切割脚本步骤时,具体实现如下步骤:检测当前是否达到预设间隔时间;若检测到当前达到预设间隔时间,则执行预设切割脚本。
在一实施例中,处理器502在实现所述执行预设切割脚本步骤时,还实现如下步骤:暂停对当前生成的第一日志文件写入日志;将所述第一日志文件重命名作为第二日志文件;重新创建一日志文件作为第一日志文件以供继续写入日志。
在一实施例中,处理器502在实现所述暂停对当前生成的第一日志文件写入日志步骤时,还实现如下步骤:创建暂停写入线程信号量;将所述暂停写入线程信号量发送至所述第一日志文件。
在一实施例中,处理器502在实现所述若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值步骤时,还实现如下步骤:创建第三日志文件;根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容,其中,所述第一日志内容的大小等于所述阈值;将所述第二日志文件中的第二日志内容剪切到所述第三日志文件,并将包含有第二日志内容的第三日志文件作为新的第二日志文件;判断新的第二日志文件的大小是否超过阈值;若所述第二日志文件的大小超过阈值,返回所述根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容的步骤。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时使处理器执行如下步骤:通过定时任务在预设间隔时间执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;判断所述第二日志文件的大小是否超过阈值;以及若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值。
在一实施例中,所述处理器在执行所述程序指令而实现所述通过定时任务在预设间隔时间执行预设切割脚本步骤时,具体实现如下步骤:检测当前是否达到预设间隔时间;若检测到当前达到预设间隔时间,则执行预设切割脚本。
在一实施例中,所述处理器在执行所述程序指令而实现所述执行预设切割脚本步骤时,还实现如下步骤:暂停对当前生成的第一日志文件写入日志;将所述第一日志文件重命名作为第二日志文件;重新创建一日志文件作为第一日志文件以供继续写入日志。
在一实施例中,所述处理器在执行所述程序指令而实现所述暂停对当前生成的第一日志文件写入日志步骤时,还实现如下步骤:创建暂停写入线程信号量;将所述暂停写入线程信号量发送至所述第一日志文件。
在一实施例中,所述处理器在执行所述程序指令而实现所述若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值步骤时,还实现如下步骤:创建第三日志文件;根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容,其中,所述第一日志内容的大小等于所述阈值;将所述第二日志文件中的第二日志内容剪切到所述第三日志文件,并将包含有第二日志内容的第三日志文件作为新的第二日志文件;判断新的第二日志文件的大小是否超过阈值;若所述第二日志文件的大小超过阈值,返回所述根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容的步骤。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (4)

1.一种日志切割方法,其特征在于,包括:
检测当前时间是否达到预设间隔时间;若检测到当前时间达到预设间隔时间,则执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;
其中,所述执行预设切割脚本,包括:创建暂停写入线程信号量;将所述暂停写入线程信号量发送至所述第一日志文件;将所述第一日志文件重命名作为第二日志文件;重新创建一日志文件作为第一日志文件以供继续写入日志;
判断所述第二日志文件的大小是否超过阈值;以及
若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值;
所述若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值,包括:
创建第三日志文件;
根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容,其中,所述第一日志内容的大小等于所述阈值,日志内容是根据写入字节的顺序进行排序的,所划分的所述第一日志内容是按照写入字节顺序在所述阈值内的所有日志内容,所划分的所述第二日志内容是按照写入字节顺序在所述阈值外的所有日志内容;
将所述第二日志文件中的第二日志内容剪切到所述第三日志文件,并将包含有第二日志内容的第三日志文件作为新的第二日志文件;
判断新的第二日志文件的大小是否超过阈值;
若所述第二日志文件的大小超过阈值,返回所述根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容的步骤。
2.一种日志切割装置,其特征在于,包括:
分割单元,用于检测当前时间是否达到预设间隔时间;若检测到当前时间达到预设间隔时间,则执行预设切割脚本以将当前生成的第一日志文件进行分割得到第二日志文件和分割后的第一日志文件,其中,所述第二日志文件包含当前生成的第一日志文件的所有日志内容,分割后的第一日志文件内容为空以供继续写入日志;其中,所述执行预设切割脚本,包括:创建暂停写入线程信号量;将所述暂停写入线程信号量发送至所述第一日志文件;将所述第一日志文件重命名作为第二日志文件;重新创建一日志文件作为第一日志文件以供继续写入日志;
第一判断单元,用于判断所述第二日志文件的大小是否超过阈值;以及
切割单元,用于若所述第二日志文件的大小超过阈值,根据所述阈值对所述第二日志文件进行切割直到切割得出的所有日志文件的大小均不超过阈值;
创建单元,用于创建第三日志文件;
划分单元,用于根据所述阈值对所述第二日志文件中的日志内容划分为第一日志内容和第二日志内容,其中,所述第一日志内容的大小等于所述阈值;
剪切单元,用于将所述第二日志文件中的第二日志内容剪切到所述第三日志文件,并将包含有第二日志内容的第三日志文件作为新的第二日志文件;
第二判断单元,用于判断新的第二日志文件的大小是否超过阈值;
返回单元,用于若所述第二日志文件的大小超过阈值,返回划分单元。
3.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1所述的方法。
4.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1所述的方法。
CN201811022546.1A 2018-09-03 2018-09-03 日志切割方法、装置、计算机设备及存储介质 Active CN109299052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811022546.1A CN109299052B (zh) 2018-09-03 2018-09-03 日志切割方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811022546.1A CN109299052B (zh) 2018-09-03 2018-09-03 日志切割方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109299052A CN109299052A (zh) 2019-02-01
CN109299052B true CN109299052B (zh) 2024-03-15

Family

ID=65166157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811022546.1A Active CN109299052B (zh) 2018-09-03 2018-09-03 日志切割方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109299052B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960686B (zh) * 2019-03-26 2021-07-20 北京百度网讯科技有限公司 数据库的日志处理方法和装置
CN112905106B (zh) * 2019-12-04 2023-04-18 贵州白山云科技股份有限公司 一种数据处理方法、装置、系统、设备及存储介质
CN111145460A (zh) * 2019-12-25 2020-05-12 航天信息股份有限公司 分析税控设备的方法、电子设备及存储介质
CN111338893B (zh) * 2020-02-20 2023-07-18 深圳市腾讯计算机系统有限公司 进程日志处理方法、装置、计算机设备以及存储介质
CN111858536A (zh) * 2020-08-03 2020-10-30 聚好看科技股份有限公司 一种业务日志传输方法及终端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012006389A (ja) * 2010-05-26 2012-01-12 Ricoh Co Ltd 画像形成装置および書込制御方法
CN104391954A (zh) * 2014-11-27 2015-03-04 北京国双科技有限公司 数据库日志的处理方法及装置
CN106095959A (zh) * 2016-06-16 2016-11-09 北京中电普华信息技术有限公司 一种数据采集方法、装置及系统
CN106815363A (zh) * 2017-01-24 2017-06-09 郑州云海信息技术有限公司 一种基于linux日志轮转管理方法与装置
CN106844630A (zh) * 2017-01-20 2017-06-13 山东中创软件商用中间件股份有限公司 一种应用服务器sql日志记录方法及其装置
CN107526674A (zh) * 2017-08-31 2017-12-29 郑州云海信息技术有限公司 一种嵌入式系统日志记录的方法与装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493729B2 (en) * 1999-09-23 2002-12-10 International Business Machines Corporation Method and system to administer mirrored filesystems
US10489351B2 (en) * 2016-12-19 2019-11-26 Quantum Corporation Heuristic journal reservations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012006389A (ja) * 2010-05-26 2012-01-12 Ricoh Co Ltd 画像形成装置および書込制御方法
CN104391954A (zh) * 2014-11-27 2015-03-04 北京国双科技有限公司 数据库日志的处理方法及装置
CN106095959A (zh) * 2016-06-16 2016-11-09 北京中电普华信息技术有限公司 一种数据采集方法、装置及系统
CN106844630A (zh) * 2017-01-20 2017-06-13 山东中创软件商用中间件股份有限公司 一种应用服务器sql日志记录方法及其装置
CN106815363A (zh) * 2017-01-24 2017-06-09 郑州云海信息技术有限公司 一种基于linux日志轮转管理方法与装置
CN107526674A (zh) * 2017-08-31 2017-12-29 郑州云海信息技术有限公司 一种嵌入式系统日志记录的方法与装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
在线地图服务日志的大数据分析;陈迪 等;小型微型计算机系统;第36卷(第1期);第33-38页 *

Also Published As

Publication number Publication date
CN109299052A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN109299052B (zh) 日志切割方法、装置、计算机设备及存储介质
US11119809B1 (en) Virtualization-based transaction handling in an on-demand network code execution system
US11544137B2 (en) Data processing platform monitoring
US9471386B2 (en) Allocating resources to tasks in a build process
EP2049994B1 (en) Recoverable error detection for concurrent computing programs
US7765081B2 (en) Systems and methods for a distributed execution environment with per-command environment management
CN106776855B (zh) 基于Spark Streaming读取Kafka数据的处理方法
CN112346829B (zh) 一种用于任务调度的方法及设备
US20170004005A1 (en) Exception handling in microprocessor systems
CN107016480B (zh) 任务调度方法、装置及系统
US8352946B2 (en) Managing migration ready queue associated with each processor based on the migration ready status of the tasks
CN109308170B (zh) 一种数据处理方法及装置
CN110753084B (zh) 上链数据读取方法、缓存服务器及计算机可读存储介质
CN107402863B (zh) 一种用于通过日志系统处理业务系统的日志的方法与设备
US20120110581A1 (en) Task cancellation grace periods
CN106648839B (zh) 数据处理的方法和装置
CN108667740B (zh) 流量控制的方法、装置及系统
CN112182043A (zh) 日志数据查询方法、装置、设备及存储介质
CN112115105A (zh) 一种业务处理方法、装置及设备
US9229716B2 (en) Time-based task priority boost management using boost register values
US9747193B1 (en) System and method for automatic root cause detection
CN109034668B (zh) Etl任务调度方法、装置、计算机设备及存储介质
US8255642B2 (en) Automatic detection of stress condition
CN109298974B (zh) 系统控制方法、装置、计算机及计算机可读存储介质
CN111400294A (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
TA01 Transfer of patent application right

Effective date of registration: 20240218

Address after: Room 403, 4th Floor, Building 4, No. 2 Hagongda Road, Tangjiawan Town, High tech Zone, Zhuhai City, Guangdong Province, 519000

Applicant after: Zhuhai Taihe Technology Co.,Ltd.

Country or region after: China

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: PING AN PUHUI ENTERPRISE MANAGEMENT Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant