具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图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)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。