CN111913885A - 日志处理方法、装置、计算机可读存储介质及设备 - Google Patents
日志处理方法、装置、计算机可读存储介质及设备 Download PDFInfo
- Publication number
- CN111913885A CN111913885A CN202010787282.XA CN202010787282A CN111913885A CN 111913885 A CN111913885 A CN 111913885A CN 202010787282 A CN202010787282 A CN 202010787282A CN 111913885 A CN111913885 A CN 111913885A
- Authority
- CN
- China
- Prior art keywords
- log
- processed
- storage space
- marking
- preset
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Abstract
本申请提供一种日志处理方法、日志处理装置、计算机可读存储介质及电子设备;涉及计算机技术领域,包括:根据外部存储空间的总容量和预期存储时长计算资源控制速率;当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志;若标记后的待处理日志满足预设条件,则根据资源控制速率将标记后的待处理日志写入外部存储空间。可见,实施本申请的技术方案,可以选择性地写入日志,从而提升调试效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种日志处理方法、日志处理装置、计算机可读存储介质及电子设备。
背景技术
在应用程序的运行过程中,经常会出现运行结果与预期不一致的情况,开发人员需要排查程序中的漏洞并修复,以实现预期的运行结果。一般来说,开发人员需要调用程序运行日志,以根据日志定位需要解决的问题。但是,容量有限的存储空间中通常存储着数量较多且种类繁杂的日志,开发人员需要在众多日志中寻找所需的日志,容易给程序调试带来较大的困难,进而导致调试效率较低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种日志处理方法、日志处理装置、计算机可读存储介质及电子设备,可以通过选择性地写入日志,提升调试效率。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提供一种日志处理方法,包括:
根据外部存储空间的总容量和预期存储时长计算资源控制速率;
当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志;
若标记后的待处理日志满足预设条件,则根据资源控制速率将标记后的待处理日志写入外部存储空间。
在本申请的一种示例性实施例中,上述方法还包括:
当检测到日志查询请求时,创建用于存储日志的第一消息队列和用于接收日志筛选条件的第二消息队列;
根据接收到的日志筛选条件从内部存储空间或外部存储空间中选取特定日志;其中,日志筛选条件用于限定属性参数;
将特定日志写入第一消息队列并展示第一消息队列。
在本申请的一种示例性实施例中,根据外部存储空间的总容量和预期存储时长计算资源控制速率,包括:
接收用于输入预期存储时长的交互操作,并根据预设计算单位对预期存储时长进行归一化处理;
根据处理结果和读取到的外部存储空间的总容量计算与预设计算单位相对应的资源控制速率。
在本申请的一种示例性实施例中,根据外部存储空间的总容量和预期存储时长计算资源控制速率之后,上述方法还包括:
构建自更新线程,以使得自更新线程在与资源控制速率相对应的令牌值低于预设令牌值时,实时更新令牌值。
在本申请的一种示例性实施例中,若属性参数包括日志类别,根据待处理日志对应的属性参数标记待处理日志,包括:
若待处理日志对应的日志类别为一类日志或二类日志,则将待处理日志标记为待写入日志;
若待处理日志对应的日志类别为三类日志,则将待处理日志标记为不写入日志;
其中,三类日志的量级大于二类日志的量级,二类日志的量级大于一类日志的量级。
在本申请的一种示例性实施例中,若待处理日志对应的日志类别为一类日志,将待处理日志标记为待写入日志,包括:
从内部存储空间中确定与待处理日志相对应的参考日志;
当检测到令牌值大于等于第一预设阈值,则将待处理日志和参考日志标记为待写入日志,并根据第一预设控制量对令牌值进行缩减。
在本申请的一种示例性实施例中,若待处理日志对应的日志类别为所述二类日志,将待处理日志标记为待写入日志,包括:
当检测到令牌值大于等于第二预设阈值,则将待处理日志标记为待写入日志,并根据第二预设控制量对令牌值进行缩减。
在本申请的一种示例性实施例中,参考日志包括历史日志和未来日志中至少一种;其中,历史日志的存储时间早于待处理日志,未来日志的存储时间晚于待处理日志。
在本申请的一种示例性实施例中,根据第一预设控制量对令牌值进行缩减之后,上述方法还包括:
若检测到参考日志的数量小于预设阈值,则计算预设阈值与参考日志的数量的差值;
根据差值对缩减后的令牌值进行更新。
在本申请的一种示例性实施例中,根据待处理日志对应的属性参数标记待处理日志之后,上述方法还包括:
确定内部存储空间的剩余容量;
若剩余容量大于预设容量,则将待处理日志存储至内部存储空间中;
若剩余容量小于等于预设容量,则确定内部存储空间中存储时间最早的历史日志;根据历史日志对应的标记结果将历史日志从内部存储空间中移除,并将待处理日志存储至内部存储空间中。
在本申请的一种示例性实施例中,根据历史日志对应的标记结果将历史日志从内部存储空间中移除,包括:
若历史日志对应的标记结果用于表示历史日志为待写入日志,则将历史日志写入外部存储空间;
若历史日志对应的标记结果用于表示历史日志为不写入日志,则将历史日志丢弃。
在本申请的一种示例性实施例中,标记后的待处理日志为待写入日志,根据待处理日志对应的属性参数标记待处理日志之后,上述方法还包括:
若检测到生成时间晚于待处理日志的目标日志,且待处理日志为内部存储空间中存储时间最早的日志,则判定标记后的待处理日志满足预设条件。
根据本申请的一方面,提供一种日志处理装置,包括控制速率计算单元、日志标记单元以及日志写入单元,其中:
控制速率计算单元,用于根据外部存储空间的总容量和预期存储时长计算资源控制速率;
日志标记单元,用于当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志;
日志写入单元,用于在标记后的待处理日志满足预设条件时,根据资源控制速率将标记后的待处理日志写入外部存储空间。
在本申请的一种示例性实施例中,上述装置还包括队列创建单元和日志选取单元,其中:
队列创建单元,用于当检测到日志查询请求时,创建用于存储日志的第一消息队列和用于接收日志筛选条件的第二消息队列;
日志选取单元,用于根据接收到的日志筛选条件从内部存储空间或外部存储空间中选取特定日志;其中,日志筛选条件用于限定属性参数;
日志写入单元,还用于将特定日志写入第一消息队列并展示第一消息队列。
在本申请的一种示例性实施例中,控制速率计算单元根据外部存储空间的总容量和预期存储时长计算资源控制速率,包括:
接收用于输入预期存储时长的交互操作,并根据预设计算单位对预期存储时长进行归一化处理;
根据处理结果和读取到的外部存储空间的总容量计算与预设计算单位相对应的资源控制速率。
在本申请的一种示例性实施例中,上述装置还包括线程构建单元,其中:
线程构建单元,用于在控制速率计算单元根据外部存储空间的总容量和预期存储时长计算资源控制速率之后,构建自更新线程,以使得自更新线程在与资源控制速率相对应的令牌值低于预设令牌值时,实时更新令牌值。
在本申请的一种示例性实施例中,若属性参数包括日志类别,日志标记单元根据待处理日志对应的属性参数标记待处理日志,包括:
若待处理日志对应的日志类别为一类日志或二类日志,则将待处理日志标记为待写入日志;
若待处理日志对应的日志类别为三类日志,则将待处理日志标记为不写入日志;
其中,三类日志的量级大于二类日志的量级,二类日志的量级大于一类日志的量级。
在本申请的一种示例性实施例中,若待处理日志对应的日志类别为一类日志,日志标记单元将待处理日志标记为待写入日志,包括:
从内部存储空间中确定与待处理日志相对应的参考日志;
当检测到令牌值大于等于第一预设阈值,则将待处理日志和参考日志标记为待写入日志,并根据第一预设控制量对令牌值进行缩减。
在本申请的一种示例性实施例中,若待处理日志对应的日志类别为所述二类日志,日志标记单元将待处理日志标记为待写入日志,包括:
当检测到令牌值大于等于第二预设阈值,则将待处理日志标记为待写入日志,并根据第二预设控制量对令牌值进行缩减。
在本申请的一种示例性实施例中,参考日志包括历史日志和未来日志中至少一种;其中,历史日志的存储时间早于待处理日志,未来日志的存储时间晚于待处理日志。
在本申请的一种示例性实施例中,上述装置还包括差值计算单元和速率更新单元,其中:
差值计算单元,用于在日志标记单元根据第一预设控制量对令牌值进行缩减之后,若检测到参考日志的数量小于预设阈值,则计算预设阈值与参考日志的数量的差值;
速率更新单元,用于根据差值对缩减后的令牌值进行更新。
在本申请的一种示例性实施例中,上述装置还包括容量确定单元和日志处理单元,其中:
容量确定单元,用于在日志标记单元根据待处理日志对应的属性参数标记待处理日志之后,确定内部存储空间的剩余容量;
日志处理单元,用于在剩余容量大于预设容量时,将待处理日志存储至内部存储空间中;
日志处理单元,还用于在剩余容量小于等于预设容量时,确定内部存储空间中存储时间最早的历史日志;根据历史日志对应的标记结果将历史日志从内部存储空间中移除,并将待处理日志存储至内部存储空间中。
在本申请的一种示例性实施例中,日志处理单元根据历史日志对应的标记结果将历史日志从内部存储空间中移除,包括:
若历史日志对应的标记结果用于表示历史日志为待写入日志,则将历史日志写入外部存储空间;
若历史日志对应的标记结果用于表示历史日志为不写入日志,则将历史日志丢弃。
在本申请的一种示例性实施例中,标记后的待处理日志为待写入日志,上述装置还包括预设条件判定单元,其中:
预设条件判定单元,用于在日志标记单元根据待处理日志对应的属性参数标记待处理日志之后,若检测到生成时间晚于待处理日志的目标日志,且待处理日志为内部存储空间中存储时间最早的日志,判定标记后的待处理日志满足预设条件。
根据本申请的一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本申请的一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本申请示例性实施例可以具有以下部分或全部有益效果:
在本申请的一示例实施方式所提供的日志处理方法中,可以根据外部存储空间的总容量和预期存储时长计算资源控制速率;当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志;若标记后的待处理日志满足预设条件,则根据资源控制速率将标记后的待处理日志写入外部存储空间。依据上述方案描述,本申请一方面可以通过对于日志的标记,选择性地写入日志,从而有利于提升调试效率。本申请又一方面可以通过资源控制速率写入日志,从而保障外部存储空间中存储预期时段内的日志,有利于进一步提升调试效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的一种日志处理方法及日志处理装置的示例性系统架构的示意图;
图2示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图;
图3示意性示出了根据本申请的一个实施例的日志处理方法的流程图;
图4示意性示出了根据本申请的一个实施例的日志查询方式的序列图;
图5示意性示出了根据本申请的一个实施例的根据令牌桶算法写入日志的架构示意图;
图6示意性示出了根据本申请的一个实施例的日志处理方法的流程图;
图7示意性示出了根据本申请的一个实施例的日志处理方法的应用场景架构示意图;
图8示意性示出了根据本申请的一个实施例中的日志处理装置的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本申请的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本申请的各方面变得模糊。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本申请实施例的一种日志处理方法及日志处理装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。另外,服务器105可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例所提供的对象融合方法一般由服务器105执行,相应地,对象融合装置一般设置于服务器105中。但本领域技术人员容易理解的是,本申请实施例所提供的对象融合方法也可以由终端设备101、102或103执行,相应的,对象融合装置也可以设置于终端设备101、102或103中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,服务器105可以根据外部存储空间的总容量和预期存储时长计算资源控制速率;当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志;若标记后的待处理日志满足预设条件,则根据资源控制速率将标记后的待处理日志写入外部存储空间。
图2示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从储存部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
特别地,根据本申请的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法和装置中限定的各种功能。
程序在后台运行时的状态通常是通过日志的形式进行表示的。一般来说,开发人员需要调用程序运行日志,以根据日志定位需要解决的程序问题。但是,存储空间通常容量有限,难以存储量级过大的日志,当存储达到上限时,通常会对存储时间较早的历史日志进行清除,而这种方式下容易将对于程序调试具有重要作用的日志清除出去,导致开发人员难以定位程序中存在的问题。并且,容量有限的存储空间中通常存储着数量较多且种类繁杂的日志,开发人员需要在众多日志中寻找所需的日志,容易给程序调试带来较大的困难,进而导致调试效率较低。
基于上述问题,本示例实施方式提供了一种日志处理方法。该日志处理方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图3所示,该日志处理方法可以包括以下步骤S310至步骤S330:
步骤S310:根据外部存储空间的总容量和预期存储时长计算资源控制速率。
步骤S320:当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志。
步骤S330:若标记后的待处理日志满足预设条件,则根据资源控制速率将标记后的待处理日志写入外部存储空间。
实施图3所示的方法,可以通过对于日志的标记,选择性地写入日志,从而有利于提升调试效率。此外,可以通过资源控制速率写入日志,从而保障外部存储空间中存储预期时段内的日志,有利于进一步提升调试效率。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S310中,根据外部存储空间的总容量和预期存储时长计算资源控制速率。
具体地,内部存储空间的总容量可以为内存容量;预期存储时长可以为用户自定义时长,也可以为默认时长,如,5天;资源控制速率可以为将日志写入外部存储空间的速率;本申请实施例可以由日志系统执行,其中,日志系统可以应用于边缘计算设备和嵌入式设备;外部存储空间和内部存储空间可以为物理存储空间,也可以为云、数据库或区块链系统中的存储空间。
作为一种可选的实施例,上述方法还包括:当检测到日志查询请求时,创建用于存储日志的第一消息队列和用于接收日志筛选条件的第二消息队列;根据接收到的日志筛选条件从内部存储空间或外部存储空间中选取特定日志;其中,日志筛选条件用于限定属性参数;将特定日志写入第一消息队列并展示第一消息队列。
具体地,日志筛选条件用于限定需要筛选出包含何种属性参数的日志,筛选得到的特定日志的数量可以为一个或多个,本申请实施例不作限定。另外,根据接收到的日志筛选条件从内部存储空间或外部存储空间中选取特定日志的方式具体可以为:根据接收到的日志筛选条件检测内部存储空间中是否存在上述的特定日志;若内部存储空间中不存在特定日志,则根据日志筛选条件从外部存储空间中选取特定日志。
另外,创建用于存储日志的第一消息队列和用于接收日志筛选条件的第二消息队列可以由写日志程序执行。当读日志程序检测到第一消息队列和第二消息队列时,可以将接收到的日志筛选条件写入第二消息队列。进而,写日志程序可以读取第二消息队列中的日志筛选条件,并根据接收到的日志筛选条件从内部存储空间或外部存储空间中选取特定日志并写入第一消息队列。读日志程序在检测到第一消息队列中的特定日志时可以展示第一消息队列中的特定日志。进一步可选的,在读日志程序关闭Q′e或Q′e+1之后,写日志程序可以停止执行写日志操作。
具体地,请参阅图4,图4示意性示出了根据本申请的一个实施例的日志查询方式的序列图。如图4所示,该序列图包括:步骤S400~步骤S490,其中:
步骤S400:读日志程序可以向写日志程序发送包含(F,k)的第一通信信号,第一通信信号用于表征读日志程序的数据传输意愿以及读日志程序具备正常的通信能力;其中,F和k分别通过无符号整数表示一个N(如,32)位的整数,F为预设整数,k为随机整数,第一通信信号中还可以包括用于表征读日志程序的进程编号。另外,若读日志程序在预设时长t1内未接收到第二通信信号,则更新(F,k)中的k并重新发送第一通信信号,若更新次数达到预设次数n1时,则进行失败反馈;其中,t和n为正整数。
步骤S410:写日志程序在接收到第一通信信号之后,可以向读日志程序返回包含(k+1,h)的第二通信信号,第二通信信号用于表征写日志程序已接收到第一通信信号以及写日志程序具备正常的通信能力;其中,h为随机整数。另外,若写日志程序在预设时长t2内未接收到第三通信信号,则更新(k+1,h)中的h并重新发送第二通信信号,若更新次数达到预设次数n2时,则进行失败反馈。
步骤S420:读日志程序在接收到第二通信信号之后,可以确定用于作为待建立消息队列唯一表征的随机整数e或e+1;其中,e或e+1不与任一消息队列存在关联。
步骤S430:读日志程序向写日志程序发送包含(h+1,e)的第三通信信号。另外,若读日志程序在预设时长t3内未检测到消息队列则更新e,若更新次数达到预设次数n3时,则进行失败反馈。
步骤S440:写日志程序在接收到第三通信信号之后,可以以e作为标识符创建消息队列(Qe,Q′e);Qe用于表示上述的第二消息队列,Q′e用于表示上述的第一消息队列。
步骤S450:读日志程序通过确定出的e查询(Qe,Q′e)。
步骤S460:读日志程序将接收到的日志筛选条件写入Qe。另外,读日志程序还可以在检测到用户输入的新的日志筛选条件时,更新Qe中的日志筛选条件。
步骤S470:写日志程序在检测到Qe中的日志筛选条件之后,可以关闭Qe。另外,若写日志程序在预设时长t4内未检测到日志筛选条件,则关闭(Qe,Q′e)。
步骤S480:写日志程序根据接收到的日志筛选条件从内部存储空间和/或外部存储空间中选取特定日志,并将特定日志写入Q′e。另外,若写日志程序或读日志程序向Q′e中写入特定日志失败nw次,则关闭(Qe,Q′e),若关闭失败,则向读日志程序反馈写入失败信号。另外,当Q′e中的日志数量达到上限,则写日志程序可以在删除写入时间最早的历史日志之后再进行写入,若Q′e中的日志数量达到上限的情况出现nE次,写日志程序关闭(Qe,Q′e)。其中,E和W为正整数。
步骤S490:读日志程序可以在检测到Q′e中的特定日志时,展示Q′e中的特定日志。另外,读日志程序还可以向Q′e中写入日志或删除日志。
可见,实施该可选的实施例,能够接收用户输入的筛选条件,从而根据该筛选条件为用户个性化呈现所需的日志,进而有利于用户调试程序,从而改善用户的使用体验。
作为一种可选的实施例,根据外部存储空间的总容量和预期存储时长计算资源控制速率,包括:接收用于输入预期存储时长的交互操作,并根据预设计算单位对预期存储时长进行归一化处理;根据处理结果和读取到的外部存储空间的总容量计算与预设计算单位相对应的资源控制速率。
具体地,交互操作可以为语音输入操作、键入操作、手势操作等,本申请实施例对于用户输入预期存储时长的操作方式不作限定;以及,预期存储时长用于表征时间跨度(如,一周、5天或一个月等);预设计算单位与资源控制速率相对应,可以表示为条/分、条/秒、条/时等,本申请实施例不作限定并以条/分为例进行实施例说明;外部存储空间的总容量用于表征可存储的日志数量,如,可存储m条日志,m为正整数。
可选的,根据预设计算单位对预期存储时长进行归一化处理的方式具体可以为:若检测到预期存储时长的表示方式与预设计算单位不匹配,则根据预设计算单位对预期存储时长进行归一化处理,归一化后的预期存储时长与预设计算单位相匹配,处于同一向量空间。举例来说,若用户输入的预期存储时长为d天,而预设计算单位为条/分,则可以通过表达式24×60×d对预期存储时长进行归一化处理,以使得预期存储时长与预设计算单位相匹配,这样可以提升计算出资源控制速率的效率,从而有利于改善用户的使用体验。
可选的,根据处理结果和读取到的外部存储空间的总容量计算与预设计算单位相对应的资源控制速率的方式具体可以为:读取外部存储空间的总容量;确定处理结果和总容量的商,作为资源控制速率;其中,外部存储空间的总容量可以为磁盘容量,资源控制速率可以通过表示为
进一步可选的,读取外部存储空间的总容量的方式具体可以为:接收选取操作从多个外部存储空间中选取目标存储空间并读取目标存储空间的总容量。
可见,实施该可选的实施例,能够通过对预期存储时长的归一化,提升计算出的资源控制速率的准确率,从而有利于高效存储日志。
作为一种可选的实施例,根据外部存储空间的总容量和预期存储时长计算资源控制速率之后,上述方法还包括:构建自更新线程,以使得自更新线程在与资源控制速率相对应的令牌值低于预设令牌值时,实时更新令牌值。
具体地,自更新线程用于对当前控制速率进行实时控制。举例来说,自更新线程在与资源控制速率相对应的令牌值低于预设令牌值时,实时更新令牌值的方式具体可以为:自更新线程在与资源控制速率相对应的令牌值(如,450)低于预设令牌值(如,500)时,控制令牌值每秒自增其中,自更新线程的执行过程可以通过服务器或终端实现,v用于表示资源控制速率。进一步地,上述方法还可以包括以下步骤;当检测到令牌值等于预设令牌值时,则丢弃后续生成的令牌,以维持令牌桶对应的令牌值。
可选的,构建自更新线程之前,上述方法还可以包括:利用令牌桶算法构造令牌桶,令牌值用于表征令牌桶中的令牌数量;或者,利用漏桶算法构造令牌桶,令牌值用于表征令牌桶中的令牌数量。这样可以在日志生成速率高于资源控制速率时,控制对于日志写入请求的处理速度,从而避免高并发引发的系统崩溃问题。
需要说明的是,由于应用程序编程接口(Application Programming Interface,API)通常对应着访问上限,当访问频率或并发量过大时可以采取限流手段,限流手段一般可以包括令牌桶(Token Bucket)算法和漏桶(Leaky Bucket)算法。其中,令牌桶算法可以按照小于等于资源控制速率的时间间隔向令牌桶中增加令牌(Token),当令牌桶中令牌数量达到上限则停止增加令牌,一个令牌对应一个待处理日志,通过资源控制速率可以控制待处理日志的处理请求对应的高并发情况。漏桶算法可以不断生成令牌并根据一定的速率向日志写入请求分配令牌,以达到控制资源控制速率的目的。
可见,实施该可选的实施例,能够利用令牌桶算法避免高并发问题,通过用于表征令牌数量的令牌值控制写入有效日志的频率,在避免效用较低的日志占用磁盘的同时,提升日志系统的容灾能力。
在步骤S320中,当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志。
具体地,待处理日志可以包括字符串、图像、音频以及视频等二进制串编码的信息中至少一种;属性参数可以通过集合的形式进行表示,待处理日志对应的属性参数可以包括日志类别、日志标签以及自定义规则等,本申请实施例不作限定;其中,日志标签可以通过字符串进行表示,不同的日志可以对应不同的字符串,也可以对应相同的字符串。若不同的日志对应相同的字符串,则表示上述不同的日志用于描述的是相关事件。另外,根据待处理日志对应的属性参数标记待处理日志之前,上述方法还可以包括:实时接收生成的待处理日志。
另外,可选的,根据待处理日志对应的属性参数标记待处理日志的方式具体可以为:读取用户输入的标记规则,根据标记规则并结合待处理日志对应的属性参数标记待处理日志。举例来说,标记规则可以为:将一类日志、二类日志以及三类日志均标记为待写入日志;或,将一类日志和二类日志标记为待写入日志,将三类日志标记为不写入日志;或,将一类日志标记为待写入日志,将二类日志和三类日志标记为不写入日志。
作为一种可选的实施例,若属性参数包括日志类别,根据待处理日志对应的属性参数标记待处理日志,包括:若待处理日志对应的日志类别为一类日志或二类日志,则将待处理日志标记为待写入日志;若待处理日志对应的日志类别为三类日志,则将待处理日志标记为不写入日志;其中,三类日志的量级(如,100条/秒)大于二类日志的量级(如,1条/分钟),二类日志的量级大于一类日志的量级(如,1条/天)。
具体地,一类日志可以为错误级别的日志,二类日志可以为事件级别的日志,三类日志可以为调试级别的日志。另外,日志类别的数量可以为预设数量,本申请示例性示出预设数量为3,即,日志类别包括一类日志、二类日志和三类日志;其中,任一类别日志中可以包括至少一中级别的日志,例如,FATAL、ERROR、WARN、INFO或DEBUG。举例来说,一类日志包括ERROR级别的日志,二类日志包括INFO级别的日志,三类日志包括DEBUG级别的日志。
其中,在根据待处理日志对应的属性参数标记待处理日志之前,上述方法还可以包括以下步骤:根据日志框架(如,Java日志框架,log for java,Log4j)划分待处理日志所属的日志类别。需要说明的是,Java是一门面向对象的程序设计语言,具有功能强大和简单易用的特征。通过使用Log4j可以控制日志信息输送的目的地(如,控制台、文件、数据库等),也可以控制每一条日志的输出格式。通过定义每一条日志信息的级别,能够通过更高的精度控制日志的生成过程。此外,Log4j所划分的日志的级别可以包括,FATAL:指的是出现了非常严重的容易导致应用程序异常中止的错误事件;ERROR:指的是不影响应用程序继续运行的错误事件。WARN:指的是运行环境潜藏危害的错误事件;INFO:指的是粗粒度信息事件,用于在粗粒度级别上突出显示应用程序的进程;DEBUG:指的是细粒度信息事件,用于调试应用程序。其中,INFO和DEBUG的区别在于:INFO是总的一条描述,DEBUG是详细的日志描述。
可见,实施该可选的实施例,能够通过对于待处理日志的标记,从而有利于后续将有效的日志写入外部存储空间,避免效用不高的日志过多占用磁盘空间的问题。
作为一种可选的实施例,若待处理日志对应的日志类别为一类日志,将待处理日志标记为待写入日志,包括:从内部存储空间中确定与待处理日志相对应的参考日志;当检测到令牌值大于等于第一预设阈值,则将待处理日志和参考日志标记为待写入日志,并根据第一预设控制量对令牌值进行缩减。
具体地,第一预设阈值和第一预设控制量可以通过数值进行表示;参考日志的数量可以为一个或多个,参考日志包括历史日志和未来日志中至少一种,参考日志与待处理日志对应于相同的标签(如,talk标签);其中,历史日志的存储时间早于待处理日志,未来日志的存储时间晚于待处理日志。
可选的,从内部存储空间中确定与待处理日志相对应的参考日志的方式具体可以为:确定存储时间早于待处理日志的X个历史日志,作为参考日志,并将之后将接收到的存储时间晚于待处理日志的Y个未来日志确定为参考日志;其中,X和Y均为正整数。举例来说,当检测到令牌值大于等于第一预设阈值,则将待处理日志和参考日志标记为待写入日志,并根据第一预设控制量对令牌值进行缩减的方式可以为:当检测到令牌值大于等于(1+min(Z,X)+Y)时,则将待处理日志和参考日志标记为待写入日志,并使得令牌值减去(1+min(Z,X)+Y)。
可选的,将待处理日志标记为待写入日志之后,上述方法还可以包括以下步骤:判断相邻时间段内是否存在与待写入日志标签相同的历史日志;如果存在,则结束本次流程;如果不存在,则执行下述的根据资源控制速率将标记后的待处理日志写入外部存储空间;其中,相邻时间段的其中一个端点时刻可以为当前时刻,本申请实施例对于相邻时间段的时长不作限定。这样可以避免将用于描述同一事件的日志写入外部存储空间,避免重复日志对于磁盘空间的占用。
可见,实施该可选的实施例,可以在确定出待处理日志为重要的一类日志时,通过将与其相关的参考日志和待处理日志均标记为待写入日志,能够使得参考日志和待处理日志均写入外部存储空间,以便用户结合参考日志和待处理日志定位程序中出现的问题,一定程度上避免与待处理日志相关的重要信息被清除的问题。
作为一种可选的实施例,若待处理日志对应的日志类别为所述二类日志,将待处理日志标记为待写入日志,包括:当检测到令牌值大于等于第二预设阈值,则将待处理日志标记为待写入日志,并根据第二预设控制量对令牌值进行缩减。
具体地,第二预设阈值(如,1)和第二预设控制量(如,1)可以通过数值进行表示。举例来说,当检测到令牌值大于等于第二预设阈值,则将待处理日志和参考日志标记为待写入日志,并根据第二预设控制量对令牌值进行缩减可以为:当检测到令牌值大于等于1,则将待处理日志和参考日志标记为待写入日志,并使得令牌值减1,以实现对于令牌值的缩减。
可见,实施该可选的实施例,能够将属于二类日志的待处理日志也标记为待写入日志,这样能够在用户检查程序异常时提供依据,以提升异常排查效率。
作为一种可选的实施例,根据第一预设控制量对令牌值进行缩减之后,上述方法还包括:若检测到参考日志的数量小于预设阈值,则计算预设阈值与参考日志的数量的差值;根据差值对缩减后的令牌值进行更新。
具体地,参考日志的数量可以用于表示与待处理日志相关的日志的数量。此外,可选的,若检测到参考日志的数量大于等于预设阈值,则执行下述的确定内部存储空间的剩余容量。举例来说,若检测到参考日志的数量小于预设阈值,则计算预设阈值与参考日志的数量的差值;根据差值对缩减后的令牌值进行更新的方式可以为:若检测到参考日志的数量Y1小于Y,则计算(Y-Y1)并控制令牌值自增(Y-Y1)。
可见,实施该可选的实施例,能够在参考日志数量较少时,增加令牌值,这样可以使得令牌桶中的令牌值维持在一定的数值范围内,避免令牌值过低或为0对日志的写入效率产生影响。
作为一种可选的实施例,根据待处理日志对应的属性参数标记待处理日志之后,上述方法还包括:确定内部存储空间的剩余容量;若剩余容量大于预设容量,则将待处理日志存储至内部存储空间中;若剩余容量小于等于预设容量,则确定内部存储空间中存储时间最早的历史日志;根据历史日志对应的标记结果将历史日志从内部存储空间中移除,并将待处理日志存储至内部存储空间中。
具体地,剩余容量可以表示日志存储位的剩余数量;预设容量用于表示待处理日志所需的存储容量,如,1;内部存储空间中的日志可以依据存储时间顺序进行存储,存储时间用于表示存入内部存储空间的时间,对于外部存储空间同理。
可见,实施该可选的实施例,能够在内存剩余空间不足时及时移除历史日志并存储待处理日志,以改善日志的处理效率。
作为一种可选的实施例,根据历史日志对应的标记结果将历史日志从内部存储空间中移除,包括:若历史日志对应的标记结果用于表示历史日志为待写入日志,则将历史日志写入外部存储空间;若历史日志对应的标记结果用于表示历史日志为不写入日志,则将历史日志丢弃。
具体地,历史日志的数量可以为一个或多个,本申请实施例不作限定。可见,实施该可选的实施例,能够根据日志对应的标记结果确定日志的处理方式,这样可以保证重要性较高的日志或者用户指定类型的日志得以写入外部存储空间进行长时间保存。
作为一种可选的实施例,标记后的待处理日志为待写入日志,根据待处理日志对应的属性参数标记待处理日志之后,上述方法还包括:若检测到生成时间晚于待处理日志的目标日志,且待处理日志为内部存储空间中存储时间最早的日志,则判定标记后的待处理日志满足预设条件。
具体地,生成时间用于表征产生日志的时间,日志可以随着程序的运行不断产生。目标日志可以为新的待处理日志,当内部存储空间中存储的日志达到上限且待处理日志为内部存储空间中存储时间最早的日志时,可以根据待处理日志的标记结果对其进行相应的处理。
可见,实施该可选的实施例,能够在检测到新日志且内部存储空间不足时及时清除历史日志,以向新日志提供存储位,保证日志缓存效率。
在步骤S330中,若标记后的待处理日志满足预设条件,则根据资源控制速率将标记后的待处理日志写入外部存储空间。
其中,预设条件可以作为待处理日志写入外部存储空间的触发条件。另外,根据资源控制速率将标记后的待处理日志写入外部存储空间的方式具体可以为:检测令牌桶中是否存在令牌;若不存在,则根据资源控制速率计算等待时长;在检测到当前时刻满足等待时长后,从令牌桶中获取令牌,依据该令牌将标记后的待处理日志写入外部存储空间。
请参阅图5,图5示意性示出了根据本申请的一个实施例的根据令牌桶算法写入日志的架构示意图。如图5所示,该架构示意图包括步骤S510~步骤S580,其中:
步骤S510:根据令牌桶算法对应的令牌生成速率生成令牌。
步骤S520:检测令牌桶的令牌值是否达到上限,如果达到上限,则执行步骤S530;如果未达到上限则执行步骤S540。
步骤S530:将生成的令牌丢弃。
步骤S540:将生成的令牌置于令牌桶中。
步骤S550:当接收到待处理日志且内部存储空间中的日志数量达到上限时,判定检测到日志写入请求,并从令牌桶中获取任一令牌;其中,日志写入请求用于处理内部存储空间中存储时间最早的历史日志。
步骤S560:检测是否成功从令牌桶中获取令牌,若令牌桶中存在至少一个令牌,则可以成功获取进而执行步骤S580;若令牌桶中不存在令牌,则执行步骤S570。
步骤S570:不对日志写入请求进行响应。
步骤S580:对日志写入请求进行响应,即,将上述的历史日志写入外部存储空间。
可见,实施图5所示的架构图,能够利用令牌桶算法改善日志系统的容灾情况,降低高并发问题对日志系统造成的影响。
请参阅图6,图6示意性示出了根据本申请的一个实施例的日志处理方法的流程图。如图6所示,该日志处理方法可以包括:步骤S600~步骤S620,其中:
步骤S600:接收用于输入预期存储时长的交互操作,并根据预设计算单位对预期存储时长进行归一化处理。
步骤S602:根据处理结果和读取到的外部存储空间的总容量计算与预设计算单位相对应的资源控制速率。
步骤S604:构建自更新线程,以使得自更新线程在与资源控制速率相对应的令牌值低于预设令牌值时,实时更新令牌值。若待处理日志对应的日志类别为一类日志,则执行步骤S606;若待处理日志对应的日志类别为二类日志,则执行步骤S608;若待处理日志对应的日志类别为三类日志,则执行步骤S610;
步骤S606:从内部存储空间中确定与待处理日志相对应的参考日志,当检测到令牌值大于等于第一预设阈值,则将待处理日志和参考日志标记为待写入日志,并根据第一预设控制量对令牌值进行缩减,参考日志包括历史日志和未来日志中至少一种;其中,历史日志的存储时间早于待处理日志,未来日志的存储时间晚于待处理日志。进而执行步骤S612。
步骤S608:当检测到令牌值大于等于第二预设阈值,则将待处理日志标记为待写入日志,并根据第二预设控制量对令牌值进行缩减。进而执行步骤S612。
步骤S610:将待处理日志标记为不写入日志。进而执行步骤S612。
步骤S612:确定内部存储空间的剩余容量,若剩余容量大于预设容量,则将待处理日志存储至内部存储空间中,若剩余容量小于等于预设容量,则确定内部存储空间中存储时间最早的历史日志,根据历史日志对应的标记结果将历史日志从内部存储空间中移除,并将待处理日志存储至内部存储空间中。
步骤S614:若检测到生成时间晚于待处理日志的目标日志,且待处理日志为内部存储空间中存储时间最早的日志,则判定标记后的待处理日志(即,一类日志)满足预设条件,根据资源控制速率将标记后的待处理日志写入外部存储空间。
步骤S616:当检测到日志查询请求时,创建用于存储日志的第一消息队列和用于接收日志筛选条件的第二消息队列。
步骤S618:根据接收到的日志筛选条件从内部存储空间或外部存储空间中选取特定日志;其中,日志筛选条件用于限定属性参数。
步骤S620:将特定日志写入第一消息队列并展示第一消息队列。
需要说明的是,步骤S600~步骤S620与图3所示的各步骤及其实施例相对应,针对步骤S600~步骤S620的具体实施方式,请参阅图3及其实施例,此处不再赘述。另外,步骤S616~步骤S620可以处于步骤S600~步骤S614中任意两步骤之间,本申请实施例不作限定。
可见,实施图6所示的方法,可以通过对于日志的标记,选择性地写入日志,从而有利于提升调试效率。此外,可以通过资源控制速率写入日志,从而保障外部存储空间中存储预期时段内的日志,有利于进一步提升调试效率。
作为一种可选的实施方式,请参阅图7。图7示意性示出了根据本申请的一个实施例的日志处理方法的应用场景架构示意图。如图7所示,本申请实施例可以应用于包括边缘计算设备720~750和中心计算设备710的系统架构中。需要说明的是,图7中的边缘计算设备仅为示例性示出,本申请实施例对于实际应用过程中的边缘计算设备数量不作限定。
具体地,中心计算设备710可以根据外部存储空间的总容量和预期存储时长计算各个边缘计算设备分别对应的资源控制速率;其中,外部存储空间的总容量可以为边缘计算设备的存储空间容量。进而,当检测到待处理日志时,中心计算设备710可以根据待处理日志对应的属性参数将待处理日志标记为待写入日志或不写入日志。进而,在中心计算设备710的内部存储空间达到上限时;若存储时间最早的日志为待写入日志,则根据各个边缘计算设备分别对应的资源控制速率将其写入边缘计算设备720~750中至少一个;若存储时间最早的日志为不写入日志,则将其丢弃。
基于现有技术中存在的边缘计算设备存储空间有限的情况,本申请通过上述实施例可以降低冗余日志对边缘计算设备的占用率,提升边缘计算设备的存储利用率,从而保障外部存储空间中存储预期时段内的日志,以提升调试效率。
进一步的,本示例实施方式中,还提供了一种日志处理装置。参考图8所示,该日志处理装置800可以包括控制速率计算单元801、日志标记单元802以及日志写入单元803,其中:
控制速率计算单元801,用于根据外部存储空间的总容量和预期存储时长计算资源控制速率;
日志标记单元802,用于当检测到待处理日志时,根据待处理日志对应的属性参数标记待处理日志;
日志写入单元803,用于在标记后的待处理日志满足预设条件时,根据资源控制速率将标记后的待处理日志写入外部存储空间。
可见,实施图8所示的装置,可以通过对于日志的标记,选择性地写入日志,从而有利于提升调试效率。此外,可以通过资源控制速率写入日志,从而保障外部存储空间中存储预期时段内的日志,有利于进一步提升调试效率。
在本申请的一种示例性实施例中,上述装置还包括队列创建单元(未图示)和日志选取单元(未图示),其中:
队列创建单元,用于当检测到日志查询请求时,创建用于存储日志的第一消息队列和用于接收日志筛选条件的第二消息队列;
日志选取单元,用于根据接收到的日志筛选条件从内部存储空间或外部存储空间中选取特定日志;其中,日志筛选条件用于限定属性参数;
日志写入单元803,还用于将特定日志写入第一消息队列并展示第一消息队列。
可见,实施该可选的实施例,能够接收用户输入的筛选条件,从而根据该筛选条件为用户个性化呈现所需的日志,进而有利于用户调试程序,从而改善用户的使用体验。
在本申请的一种示例性实施例中,控制速率计算单元801根据外部存储空间的总容量和预期存储时长计算资源控制速率,包括:
接收用于输入预期存储时长的交互操作,并根据预设计算单位对预期存储时长进行归一化处理;
根据处理结果和读取到的外部存储空间的总容量计算与预设计算单位相对应的资源控制速率。
可见,实施该可选的实施例,能够通过对预期存储时长的归一化,提升计算出的资源控制速率的准确率,从而有利于高效存储日志。
在本申请的一种示例性实施例中,上述装置还包括线程构建单元(未图示),其中:
线程构建单元,用于在控制速率计算单元801根据外部存储空间的总容量和预期存储时长计算资源控制速率之后,构建自更新线程,以使得自更新线程在与资源控制速率相对应的令牌值低于预设令牌值时,实时更新令牌值。
可见,实施该可选的实施例,能够利用令牌桶算法避免高并发问题,通过用于表征令牌数量的令牌值控制写入有效日志的频率,在避免效用较低的日志占用磁盘的同时,提升日志系统的容灾能力。
在本申请的一种示例性实施例中,若属性参数包括日志类别,日志标记单元802根据待处理日志对应的属性参数标记待处理日志,包括:
若待处理日志对应的日志类别为一类日志或二类日志,则将待处理日志标记为待写入日志;
若待处理日志对应的日志类别为三类日志,则将待处理日志标记为不写入日志;
其中,三类日志的量级大于二类日志的量级,二类日志的量级大于一类日志的量级。
可见,实施该可选的实施例,能够通过对于待处理日志的标记,从而有利于后续将有效的日志写入外部存储空间,避免效用不高的日志过多占用磁盘空间的问题。
在本申请的一种示例性实施例中,若待处理日志对应的日志类别为一类日志,日志标记单元802将待处理日志标记为待写入日志,包括:
从内部存储空间中确定与待处理日志相对应的参考日志;
当检测到令牌值大于等于第一预设阈值,则将待处理日志和参考日志标记为待写入日志,并根据第一预设控制量对令牌值进行缩减。
其中,参考日志包括历史日志和未来日志中至少一种;其中,历史日志的存储时间早于待处理日志,未来日志的存储时间晚于待处理日志。
可见,实施该可选的实施例,可以在确定出待处理日志为重要的一类日志时,通过将与其相关的参考日志和待处理日志均标记为待写入日志,能够使得参考日志和待处理日志均写入外部存储空间,以便用户结合参考日志和待处理日志定位程序中出现的问题,一定程度上避免与待处理日志相关的重要信息被清除的问题。
在本申请的一种示例性实施例中,若待处理日志对应的日志类别为所述二类日志,日志标记单元802将待处理日志标记为待写入日志,包括:
当检测到令牌值大于等于第二预设阈值,则将待处理日志标记为待写入日志,并根据第二预设控制量对令牌值进行缩减。
可见,实施该可选的实施例,能够将属于二类日志的待处理日志也标记为待写入日志,这样能够在用户检查程序异常时提供依据,以提升异常排查效率。
在本申请的一种示例性实施例中,上述装置还包括差值计算单元(未图示)和速率更新单元(未图示),其中:
差值计算单元,用于在日志标记单元802根据第一预设控制量对令牌值进行缩减之后,若检测到参考日志的数量小于预设阈值,则计算预设阈值与参考日志的数量的差值;
速率更新单元,用于根据差值对缩减后的令牌值进行更新。
可见,实施该可选的实施例,能够在参考日志数量较少时,增加令牌值,这样可以使得令牌桶中的令牌值维持在一定的数值范围内,避免令牌值过低或为0对日志的写入效率产生影响。
在本申请的一种示例性实施例中,上述装置还包括容量确定单元(未图示)和日志处理单元(未图示),其中:
容量确定单元,用于在日志标记单元802根据待处理日志对应的属性参数标记待处理日志之后,确定内部存储空间的剩余容量;
日志处理单元,用于在剩余容量大于预设容量时,将待处理日志存储至内部存储空间中;
日志处理单元,还用于在剩余容量小于等于预设容量时,确定内部存储空间中存储时间最早的历史日志;根据历史日志对应的标记结果将历史日志从内部存储空间中移除,并将待处理日志存储至内部存储空间中。
可见,实施该可选的实施例,能够在内存剩余空间不足时及时移除历史日志并存储待处理日志,以改善日志的处理效率。
在本申请的一种示例性实施例中,日志处理单元根据历史日志对应的标记结果将历史日志从内部存储空间中移除,包括:
若历史日志对应的标记结果用于表示历史日志为待写入日志,则将历史日志写入外部存储空间;
若历史日志对应的标记结果用于表示历史日志为不写入日志,则将历史日志丢弃。
可见,实施该可选的实施例,能够根据日志对应的标记结果确定日志的处理方式,这样可以保证重要性较高的日志或者用户指定类型的日志得以写入外部存储空间进行长时间保存。
在本申请的一种示例性实施例中,标记后的待处理日志为待写入日志,上述装置还包括预设条件判定单元(未图示),其中:
预设条件判定单元,用于在日志标记单元802根据待处理日志对应的属性参数标记待处理日志之后,若检测到生成时间晚于待处理日志的目标日志,且待处理日志为内部存储空间中存储时间最早的日志,判定标记后的待处理日志满足预设条件。
可见,实施该可选的实施例,能够在检测到新日志且内部存储空间不足时及时清除历史日志,以向新日志提供存储位,保证日志缓存效率。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
由于本申请的示例实施例的日志处理装置的各个功能模块与上述日志处理方法的示例实施例的步骤对应,因此对于本申请装置实施例中未披露的细节,请参照本申请上述的日志处理方法的实施例。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
作为又一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种日志处理方法,其特征在于,包括:
根据外部存储空间的总容量和预期存储时长计算资源控制速率;
当检测到待处理日志时,根据所述待处理日志对应的属性参数标记所述待处理日志;
若标记后的待处理日志满足预设条件,则根据所述资源控制速率将标记后的待处理日志写入外部存储空间。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到日志查询请求时,创建用于存储日志的第一消息队列和用于接收日志筛选条件的第二消息队列;
根据接收到的所述日志筛选条件从内部存储空间或所述外部存储空间中选取特定日志;其中,所述日志筛选条件用于限定所述属性参数;
将所述特定日志写入所述第一消息队列并展示所述第一消息队列。
3.根据权利要求1所述的方法,其特征在于,根据外部存储空间的总容量和预期存储时长计算资源控制速率,包括:
接收用于输入所述预期存储时长的交互操作,并根据预设计算单位对所述预期存储时长进行归一化处理;
根据处理结果和读取到的所述外部存储空间的总容量计算与所述预设计算单位相对应的资源控制速率。
4.根据权利要求1所述的方法,其特征在于,根据外部存储空间的总容量和预期存储时长计算资源控制速率之后,所述方法还包括:
构建自更新线程,以使得所述自更新线程在与所述资源控制速率相对应的令牌值低于预设令牌值时,实时更新所述令牌值。
5.根据权利要求4所述的方法,其特征在于,若所述属性参数包括日志类别,根据所述待处理日志对应的属性参数标记所述待处理日志,包括:
若所述待处理日志对应的日志类别为一类日志或二类日志,则将所述待处理日志标记为待写入日志;
若所述待处理日志对应的日志类别为三类日志,则将所述待处理日志标记为不写入日志;
其中,所述三类日志的量级大于所述二类日志的量级,所述二类日志的量级大于所述一类日志的量级。
6.根据权利要求5所述的方法,其特征在于,若所述待处理日志对应的日志类别为所述一类日志,将所述待处理日志标记为待写入日志,包括:
从内部存储空间中确定与所述待处理日志相对应的参考日志;
当检测到所述令牌值大于等于第一预设阈值,则将所述待处理日志和所述参考日志标记为所述待写入日志,并根据第一预设控制量对所述令牌值进行缩减。
7.根据权利要求5所述的方法,其特征在于,若所述待处理日志对应的日志类别为所述二类日志,将所述待处理日志标记为待写入日志,包括:
当检测到所述令牌值大于等于第二预设阈值,则将所述待处理日志标记为所述待写入日志,并根据第二预设控制量对所述令牌值进行缩减。
8.根据权利要求6所述的方法,其特征在于,所述参考日志包括历史日志和未来日志中至少一种;其中,所述历史日志的存储时间早于所述待处理日志,所述未来日志的存储时间晚于所述待处理日志。
9.根据权利要求6所述的方法,其特征在于,根据第一预设控制量对所述令牌值进行缩减之后,所述方法还包括:
若检测到所述参考日志的数量小于预设阈值,则计算所述预设阈值与所述参考日志的数量的差值;
根据所述差值对缩减后的令牌值进行更新。
10.根据权利要求1所述的方法,其特征在于,根据所述待处理日志对应的属性参数标记所述待处理日志之后,所述方法还包括:
确定内部存储空间的剩余容量;
若所述剩余容量大于预设容量,则将所述待处理日志存储至所述内部存储空间中;
若所述剩余容量小于等于所述预设容量,则确定所述内部存储空间中存储时间最早的历史日志;根据所述历史日志对应的标记结果将所述历史日志从所述内部存储空间中移除,并将所述待处理日志存储至所述内部存储空间中。
11.根据权利要求10所述的方法,其特征在于,根据所述历史日志对应的标记结果将所述历史日志从所述内部存储空间中移除,包括:
若所述历史日志对应的标记结果用于表示所述历史日志为待写入日志,则将所述历史日志写入所述外部存储空间;
若所述历史日志对应的标记结果用于表示所述历史日志为不写入日志,则将所述历史日志丢弃。
12.根据权利要求4所述的方法,其特征在于,标记后的待处理日志为所述待写入日志,根据所述待处理日志对应的属性参数标记所述待处理日志之后,所述方法还包括:
若检测到生成时间晚于所述待处理日志的目标日志,且所述待处理日志为内部存储空间中存储时间最早的日志,则判定标记后的待处理日志满足所述预设条件。
13.一种日志处理装置,其特征在于,包括:
控制速率计算单元,用于根据外部存储空间的总容量和预期存储时长计算资源控制速率;
日志标记单元,用于当检测到待处理日志时,根据所述待处理日志对应的属性参数标记所述待处理日志;
日志写入单元,用于在标记后的待处理日志满足预设条件时,根据所述资源控制速率将标记后的待处理日志写入外部存储空间。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-12任一项所述的方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010787282.XA CN111913885B (zh) | 2020-08-07 | 2020-08-07 | 日志处理方法、装置、计算机可读存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010787282.XA CN111913885B (zh) | 2020-08-07 | 2020-08-07 | 日志处理方法、装置、计算机可读存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913885A true CN111913885A (zh) | 2020-11-10 |
CN111913885B CN111913885B (zh) | 2021-07-27 |
Family
ID=73282942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010787282.XA Active CN111913885B (zh) | 2020-08-07 | 2020-08-07 | 日志处理方法、装置、计算机可读存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913885B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112600761A (zh) * | 2020-12-11 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种资源分配的方法、装置及存储介质 |
CN113312328A (zh) * | 2021-07-28 | 2021-08-27 | 阿里云计算有限公司 | 控制方法、数据处理方法、数据访问方法及计算设备 |
CN113900906A (zh) * | 2021-10-28 | 2022-01-07 | 北京达佳互联信息技术有限公司 | 日志容量确定方法、装置、电子设备及存储介质 |
CN114064682A (zh) * | 2022-01-17 | 2022-02-18 | 睿至科技集团有限公司 | 一种基于大数据的信息处理方法及系统 |
CN114584572A (zh) * | 2022-03-29 | 2022-06-03 | 苏州浪潮智能科技有限公司 | 一种分布式对象存储中数据同步方法、装置、设备及介质 |
CN115174289A (zh) * | 2022-05-24 | 2022-10-11 | 青岛海尔科技有限公司 | 日志数据的存储方法、装置、存储介质及电子装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201783A (zh) * | 2006-12-14 | 2008-06-18 | 英业达股份有限公司 | 网络存储系统的存储空间不足预警方法 |
CN104184599A (zh) * | 2013-05-21 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 基于日志级别的日志文件上传方法及装置 |
CN105515836A (zh) * | 2015-11-27 | 2016-04-20 | 小米科技有限责任公司 | 日志处理方法、装置及服务器 |
US20180004626A1 (en) * | 2016-07-04 | 2018-01-04 | Fujitsu Limited | Non-transitory computer-readable storage medium, evaluation method, and evaluation device |
CN107911254A (zh) * | 2017-12-26 | 2018-04-13 | 中国移动通信集团江苏有限公司 | 日志传输方法、装置、计算设备及存储介质 |
US20190114364A1 (en) * | 2017-10-13 | 2019-04-18 | Capital One Services, Llc | Systems and methods for web analytics testing and web development |
CN111309696A (zh) * | 2020-03-20 | 2020-06-19 | 中电长城网际系统应用有限公司 | 日志处理方法及装置、电子设备、可读介质 |
-
2020
- 2020-08-07 CN CN202010787282.XA patent/CN111913885B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201783A (zh) * | 2006-12-14 | 2008-06-18 | 英业达股份有限公司 | 网络存储系统的存储空间不足预警方法 |
CN104184599A (zh) * | 2013-05-21 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 基于日志级别的日志文件上传方法及装置 |
CN105515836A (zh) * | 2015-11-27 | 2016-04-20 | 小米科技有限责任公司 | 日志处理方法、装置及服务器 |
US20180004626A1 (en) * | 2016-07-04 | 2018-01-04 | Fujitsu Limited | Non-transitory computer-readable storage medium, evaluation method, and evaluation device |
US20190114364A1 (en) * | 2017-10-13 | 2019-04-18 | Capital One Services, Llc | Systems and methods for web analytics testing and web development |
CN107911254A (zh) * | 2017-12-26 | 2018-04-13 | 中国移动通信集团江苏有限公司 | 日志传输方法、装置、计算设备及存储介质 |
CN111309696A (zh) * | 2020-03-20 | 2020-06-19 | 中电长城网际系统应用有限公司 | 日志处理方法及装置、电子设备、可读介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112600761A (zh) * | 2020-12-11 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种资源分配的方法、装置及存储介质 |
CN112600761B (zh) * | 2020-12-11 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 一种资源分配的方法、装置及存储介质 |
CN113312328A (zh) * | 2021-07-28 | 2021-08-27 | 阿里云计算有限公司 | 控制方法、数据处理方法、数据访问方法及计算设备 |
CN113900906A (zh) * | 2021-10-28 | 2022-01-07 | 北京达佳互联信息技术有限公司 | 日志容量确定方法、装置、电子设备及存储介质 |
CN114064682A (zh) * | 2022-01-17 | 2022-02-18 | 睿至科技集团有限公司 | 一种基于大数据的信息处理方法及系统 |
CN114584572A (zh) * | 2022-03-29 | 2022-06-03 | 苏州浪潮智能科技有限公司 | 一种分布式对象存储中数据同步方法、装置、设备及介质 |
CN114584572B (zh) * | 2022-03-29 | 2023-06-16 | 苏州浪潮智能科技有限公司 | 一种分布式对象存储中数据同步方法、装置、设备及介质 |
CN115174289A (zh) * | 2022-05-24 | 2022-10-11 | 青岛海尔科技有限公司 | 日志数据的存储方法、装置、存储介质及电子装置 |
CN115174289B (zh) * | 2022-05-24 | 2023-10-24 | 青岛海尔科技有限公司 | 日志数据的存储方法、装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111913885B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913885B (zh) | 日志处理方法、装置、计算机可读存储介质及设备 | |
CN109300179B (zh) | 动画制作方法、装置、终端和介质 | |
CN108073429B (zh) | 一种支付方式配置方法、装置、设备及存储介质 | |
CN111753914A (zh) | 模型优化方法和装置、电子设备及存储介质 | |
US20220215303A1 (en) | Automated Rules Execution Testing And Release System | |
CN111158666A (zh) | 实体归一化处理方法、装置、设备及存储介质 | |
CN114140947A (zh) | 界面展示方法、装置、电子设备、存储介质和程序产品 | |
CN114697398B (zh) | 数据处理方法、装置、电子设备、存储介质及产品 | |
CN115858556A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN111010449B (zh) | 图像信息输出方法、系统、装置、介质及电子设备 | |
US11810022B2 (en) | Contact center call volume prediction | |
CN115186738A (zh) | 模型训练方法、装置和存储介质 | |
CN114627343A (zh) | 深度学习模型的训练方法、图像处理方法、装置及设备 | |
CN114066603A (zh) | 贷后风险预警方法、装置、电子设备和计算机可读介质 | |
CN112613955A (zh) | 订单处理方法、装置、电子设备及存储介质 | |
CN112394962B (zh) | 一种业务执行方法、业务逻辑更新方法及装置 | |
CN116820539B (zh) | 一种基于互联网的系统软件运行维护系统及方法 | |
US20220147325A1 (en) | Computer process management | |
US20230419047A1 (en) | Dynamic meeting attendee introduction generation and presentation | |
CN113362097B (zh) | 一种用户确定方法和装置 | |
CN112613976A (zh) | 逻辑条件判定方法、装置、介质及电子设备 | |
US20230137566A1 (en) | Systems and methods for automated change review for enhanced network and data security | |
US20230370409A1 (en) | Presenting content history to a user added to a group chat | |
US20220198301A1 (en) | Method and apparatus for update processing of question answering system | |
CN117453415A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |