CN112699015B - 日志输出方法、装置、服务器及计算机可读存储介质 - Google Patents
日志输出方法、装置、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112699015B CN112699015B CN202011607768.7A CN202011607768A CN112699015B CN 112699015 B CN112699015 B CN 112699015B CN 202011607768 A CN202011607768 A CN 202011607768A CN 112699015 B CN112699015 B CN 112699015B
- Authority
- CN
- China
- Prior art keywords
- log
- output
- time
- preset
- logs
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 47
- 238000009825 accumulation Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 12
- 230000006399 behavior Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开关于一种日志输出方法、装置、服务器及计算机可读存储介质。其中,该日志输出方法包括:获取日志到达输出接口的第一时间戳;确定第一时间戳与第二时间戳之间的时间差,第二时间戳为输出接口最后一次输出日志的时间戳;响应于检测到时间差大于预设时间间隔,输出日志信息,日志信息至少包括日志;响应于检测到时间差小于或等于预设时间间隔,不输出日志。采用本公开提供的日志输出方法、装置、服务器及计算机可读存储介质,能够解决大量输出日志时,无法兼顾低内存消耗和强自适应性的问题。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种日志输出方法、装置、服务器及计算机可读存储介质。
背景技术
在软件开发和调试的过程中,通常需要输出大量日志,以便于开发者进行测试和定位问题。大量的日志输出会消耗大量的内存资源和传输资源。
目前,在相关的技术中,日志输出通常采用以下方式来限制输出的日志量:设置日志的输出比例或者使用令牌桶。但是设置采样率的方案在日志输出量过大或过小时,实际输出的日志量也会随之波动,无法保证日志的稳定输出,适应性不强;令牌桶的方案会消耗大量资源。即目前的日志采样方案中,无法兼顾低内存消耗和强自适应性。
发明内容
本公开提供一种日志输出方法、装置、服务器及计算机可读存储介质,以至少解决相关技术中在大量输出日志时,无法兼顾低内存消耗和强自适应性的问题。
本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种日志输出方法,包括:
获取日志到达输出接口的第一时间戳;确定第一时间戳与第二时间戳之间的时间差,第二时间戳为输出接口最后一次输出日志的时间戳;响应于检测到时间差大于预设时间间隔,输出日志信息,日志信息至少包括日志;响应于检测到时间差小于或等于预设时间间隔,不输出日志。
可选地,在响应于检测到时间差大于预设时间间隔之后,方法还包括:
将第二时间戳更新为第一时间戳。
可选地,响应于检测到时间差小于或等于预设时间间隔,累计不被输出的日志的计数。
可选地,日志信息中还包括:在目标时间段内不被输出的日志的计数;
其中,目标时间段为从第二时间戳到第一时间戳之间的时间段。
可选地,在响应于检测到时间差大于预设时间间隔之后,方法还包括:
将不被输出的日志的计数重置为初始值;初始值用于指示预先设定的不被输出的日志的数量。
可选地,响应于检测到时间差小于或等于预设时间间隔,更新不被输出的日志的计数。
可选地,在确定第二时间戳与第一时间戳之间的时间差之前,方法还包括:
在检测到日志内容包括预设信息的情况下,在日志内容中提取与预设信息相关的特征参数;
将特征参数确定为日志类型;
根据日志类型与第二时间戳之间的预设对应关系,匹配与日志的日志类型对应的第二时间戳。
根据本公开实施例的第二方面,提供一种日志输出装置,包括:
获取模块,被配置为执行获取日志到达输出接口的第一时间戳;第一确定模块,被配置为执行确定第一时间戳与第二时间戳之间的时间差,第二时间戳为输出接口最后一次输出日志的时间戳;输出模块,被配置为执行响应于检测到时间差大于预设时间间隔,输出日志信息,日志信息至少包括日志;不输出模块,被配置为执行响应于检测到时间差小于或等于预设时间间隔,不输出日志。
可选地,装置还包括:
第一更新模块,被配置为执行将第二时间戳更新为第一时间戳。
可选地,装置还包括:
累计模块,被配置为执行响应于检测到时间差小于或等于预设时间间隔,累计不被输出的日志的计数。
可选地,日志信息中还包括:在目标时间段内不被输出的日志的计数;其中,目标时间段为从第二时间戳到第一时间戳之间的时间段。
可选地,装置还包括:
重置模块,被配置为执行将不被输出的日志的计数重置为初始值;初始值用于指示预先设定的不被输出的日志的数量。
可选地,装置还包括:
第二更新模块,被配置为执行响应于检测到时间差小于或等于预设时间间隔,更新不被输出的日志的计数。
可选地,装置还包括:
提取模块,被配置为执行在检测到日志内容包括预设信息的情况下,在日志内容中提取与预设信息相关的特征参数;
第二确定模块,被配置为执行将特征参数确定为日志类型;
匹配模块,被配置为执行根据日志类型与第二时间戳之间的预设对应关系,匹配与日志的日志类型对应的第二时间戳。
根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如第一方面所述的日志输出方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面所述的日志输出方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,当计算机程序产品中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面所述的日志输出方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
在本公开实施例中,通过确定最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差,响应于检测到时间差大于预设时间间隔,输出至少包括日志的日志信息;响应于检测到时间差小于或等于预设时间间隔,不输出日志。这样,无论待输出日志量有多少,都能够保证预设时间内输出固定数量的日志。由此,能够在待输出日志量不断变化的日志输出过程中,保证日志的匀速稳定输出,以保证日志输出的强适应性,而且通过时间戳之间的时间差来判断是否输出日志,能够节约内存。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种日志输出方法、装置、电子设备及计算机可读存储介质应用环境示意图。
图2是根据一示例性实施例示出的一种日志输出方法的流程图。
图3是根据一示例性实施例示出的一种实现日志输出的方法的流程图。
图4是根据一示例性实施例示出的一种日志输出装置的框图。
图5是根据一示例性实施例示出的一种服务器的框图。
图6是根据一示例性实施例示出的用于数据处理的设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在应用程序开发和调试的过程中,开发人员为了便于之后的调试,通过日志来记录开发调试过程中事件的发生。由于日志记录了应用程序在运行过程中的一些状态信息,特别是出错信息。借助日志可以快速跟踪、定位到软件出错的位置,方便修复。因此,日志对于软件开发者维护软件来说,尤为重要。通过输出的日志,能够辅助开发人员分析问题的原因以及测试结果等。
日志输出会大量消耗存储资源,如果后续还需要进行日志采集,还需要占用网络资源、传输通道和集中存储等传输资源。甚至日志输出量过大时,甚至影响软件本身的正常工作。所以经常要在日志输出的入口处进行一些采样处理,尽量日志的输出量,避免因为大量日志输出引发的各类问题。
每个应用程序接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,就需要通过限流来保证接口的可用性,以防止非预期的请求对***压力过大而引起的***瘫痪。
目前,在相关的技术中,日志输出通常采用以下方式来限制输出的日志量:
第一,可以通过在日志输出接口处设置输出比例,来限制日志的输出。比如,预设时间内需要输出100条日志,若输出比例为10%,则可以输出10条日志,剩余的90条日志将不被输出。
由于不同的日志输出量级本身差异很大,固定的输出比例通常不具备自适应性,在海量日志输出时,输出的日志量依然很大;在日志量本身很小时,相同的采样率有可能造成关键日志长时间无法输出,即无法保证日志的稳定输出。
第二,可以通过令牌桶,来限制日志的输出。给定日志输出的每秒查询率(QPS,Queries per second),当低于预定的QPS时全量输出,当超过该QPS时,根据令牌桶的机制,超过该QPS的日志全部丢弃。其中,QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
但是,使用令牌桶的实现,运行时成本较高,且一般令牌桶实现都会维护锁,造成令牌桶运行时资源消耗较大。
为了解决上述相关技术中存在的在大量输出日志时,无法兼顾低内存消耗和强自适应性的问题。
本公开提供了一种日志输出方法、装置、电子设备及计算机可读存储介质。该日志输出方法、装置、电子设备及计算机可读存储介质可通过确定最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差,响应于检测到时间差大于预设时间间隔,输出至少包括日志的日志信息;响应于检测到时间差小于或等于预设时间间隔,不输出日志。由此,能够在待输出日志量不断变化的日志输出过程中,保证日志的匀速稳定输出,以保证日志输出的强适应性,而且通过时间戳之间的时间差来判断是否输出日志,能够节约内存。
如图1所示,是本公开说明书一个或多个实施例提供的日志输出方法、装置、电子设备及计算机可读存储介质的应用环境示意图。
如图1所示,所述服务器100可以是网络服务器、数据库服务器等。本公开可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
下面将对本公开实施例提供的日志输出方法进行详细说明。
本公开实施例提供的日志输出方法可以应用于服务器100,为了便于描述,除特别说明外,本公开实施例均以服务器100为执行主体进行说明。可以理解的是,所述的执行主体并不构成对本公开的限定。
下面,首先对本公开提供的日志输出方法进行说明。
图2是根据一示例性实施例示出的一种日志输出方法的流程图。
如图2所示,该日志输出方法可以包括以下步骤。
S210,获取日志到达输出接口的第一时间戳。
S220,确定第一时间戳与第二时间戳之间的时间差,第二时间戳为输出接口最后一次输出日志的时间戳。
S230,响应于检测到时间差大于预设时间间隔,输出日志信息,日志信息至少包括日志。
S240,响应于检测到时间差小于或等于预设时间间隔,不输出日志。
上述各步骤的具体实现方式将在下文中进行详细描述。
在本公开实施例中,通过确定最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差,响应于检测到时间差大于预设时间间隔,输出至少包括日志的日志信息;响应于检测到时间差小于或等于预设时间间隔,不输出日志。由此,能够在待输出日志量不断变化的日志输出过程中,保证日志的匀速稳定输出,以保证日志输出的强适应性,而且通过时间戳之间的时间差来判断是否输出日志,能够节约内存。
下面介绍上述各个步骤的具体实现方式。
首先,涉及S210。
当日志到达输出接口的时候,获取当前的时间戳,即第一时间戳。其中,时间戳是使用数字签名技术产生的数据,时间戳的主要目的在于通过一定的技术手段,对数据产生的时间进行认证,从而验证这段数据在产生后是否经过篡改。
然后,涉及S220。
作为本申请的一种实现方式,为了更加精细的区分日志类型,在上述涉及到的确定第二时间戳与第一时间戳之间的时间差的步骤之前,还可以包括以下步骤:
在检测到日志内容包括预设信息的情况下,在日志内容中提取与预设信息相关的特征参数;将特征参数确定为日志类型;根据日志类型与第二时间戳之间的预设对应关系,匹配与日志的日志类型对应的第二时间戳。
首先,在检测到日志内容包括预设信息的情况下,在日志内容中提取与预设信息相关的特征参数;将特征参数确定为日志类型。
在出现预设信息的情况下,说明此条日志可以区分其日志类型。其中,上述涉及到的特征参数至少可以包括:用户登陆行为、用户刷新行为、用户登陆失败行为、用户关注行为和用户评论行为等等。通常,日志中在预设信息(如message format string)之后的特征参数(如user follow action)即为日志类型。
具体地,以Java日志为例,在输出日志时,日志内容至少包括“message formatstring”(消息格式字符串)和“args”(参数)。
例如,某条日志可以为:“user follow action,sid:{},tid:{}”。即该条日志表示:用户关注行为,用户身份标识:{},线程标识:{}。
其中,例如args为6235,3735;那么最终输出的日志内容为“user follow action,sid:6235,tid:3735”。即该条日志表示:用户关注行为,用户身份标识:6235,线程标识:3735。
这条日志的日志类型为“user follow action”,即用户关注行为。
这里,通过以日志类型为维度,可以区分出不同类型的日志,可以让日志类型的区分更加精细化,进而可以保证不同类型的日志都能够稳定的输出。
然后,根据日志类型与第二时间戳之间的预设对应关系,匹配与日志的日志类型对应的第二时间戳。
可以在每种类型的日志可以分别在日志器中维护一个第二时间戳,即最后一次输出该类型的日志的时间戳。日志类型与第二时间戳之间具有预设对应关系。在确定日志类型的情况下,可以根据预设对应关系匹配该类型日志的第二时间戳。
其中,日志类型与第二时间戳对应,即每种日志类型都有一个第二时间戳。
示例性地,日志类型M对应的第二时间戳为00:03秒,日志类型N对应的第二时间戳为00:28,那么在判断到达日志输出接口的日志类型M的日志Q是否需要输出时,就需要根据日志Q对应的第二时间戳(00:03)与日志Q到达日志输出接口的第一时间戳之间的时间差,来与预设时间间隔进行比较。
这样,可以让日志类型的区分更加精细化,能够可以保证不同类型的日志都能够稳定的输出。
接着,涉及S230。
响应于检测到时间差大于预设时间间隔,输出日志信息,日志信息至少包括日志。
示例性地,预设时间间隔为2秒。当日志D到达日志输出接口时,在此之前最后一条输出的日志为日志C,输出日志C的第二时间戳为10:00;日志D到达日志输出接口时的第一时间戳为10:04,时间差为4秒,日志D满足时间差大于预设时间间隔的条件,日志D可以被输出。
在本公开一些实施例中,响应于检测到时间差小于或等于预设时间间隔,累计不被输出的日志的计数。
响应于检测到时间差小于或等于预设时间间隔,除了不输出该条日志以外,还可以对不被输出的日志的进行累计计数。
其中,上述涉及到的日志信息中还包括:在目标时间段内不被输出的日志的计数;目标时间段为从第二时间戳到第一时间戳之间的时间段。
可以在输出日志时,同时输出在目标时间段内不被输出的日志的计数,即输出的日志信息包括:最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差大于预设时间间隔的日志,以及从第二时间戳到第一时间戳之间的时间段内不被输出的日志的计数。
示例性地,日志的日志类型为用户登录失败,输出的日志信息可以为:最后一次输出用户登录失败日志的第二时间戳与用户登录失败日志到达输出接口的第一时间戳之间的时间差大于预设时间间隔的用户登录失败的日志,以及第二时间戳到第一时间戳之间的时间段内不被输出的用户登录失败日志的计数。
这样,可以使得开发人员能够根据输出的日志,以及不被输出的日志的计数,了解目标时间段内,日志的整体输出情况。
作为本申请的一种实现方式,为了保持第二时间戳的更新,在上述涉及到的响应于检测到时间差大于预设时间间隔的步骤之后,还可以包括以下步骤:
将第二时间戳更新为第一时间戳。
其中,第二时间戳为输出接口最后一次输出日志的时间戳,每当有日志输出时,最后一次输出日志的时间戳就会随之更新。第二时间戳是一个会随着有日志输出而变换的时间戳。当检测到时间差大于预设时间间隔时,说明在第一时间戳到达日志输出接口的日志即将被输出,就需要将第二时间戳更新为第一时间戳。
示例性地,输出接口最后一次输出日志的时间戳,即第二时间戳为第3秒。当日志输出接口在第4秒(第一时间戳)输出日志时,就将将第二时间戳(第3秒)更新为第一时间戳(第4秒)。
由此,通过响应于检测到时间差大于预设时间间隔,将第二时间戳更新为第一时间戳,能够保持第二时间戳的更新,进而使日志稳定输出。
作为本申请的一种实现方式,为了更精确地监控不被输出的日志的数量,在上述涉及到的响应于检测到时间差大于预设时间间隔的步骤之后,还可以包括以下步骤:
将不被输出的日志的计数重置为初始值;所述初始值用于指示预先设定的所述不被输出的日志的数量。
其中,初始值可以为用户设置的不被输出的日志的数量,或者服务器自行设置的不被输出的日志的数量。例如,将不被输出的日志的计数重置为0。
示例性地,每秒有100条日志到达输出接口,第1秒输出了日志A,有99条日志是不被输出的日志,在第1秒输出日志A和不被输出的日志的计数“99”,并将不被输出的日志的计数重置为0;第2秒输出了日志B,有28条日志是不被输出的日志,这里输出的是日志A和不被输出的日志的计数“28”。
即每次检测到时间差大于预设时间间隔之后,会将满足时间差大于预设时间间隔的条件的日志和不被输出的日志的计数输出,以及将不被输出的日志的计数重置为初始值。后续再输出满足时间差大于预设时间间隔的条件的日志时,就不会在前一次不被输出的日志的计数再累加了。
由此,通过响应于检测到时间差大于预设时间间隔,将不被输出的日志的计数重置为初始值,能够精确地监控不被输出的日志的数量,使开发人员能够更加清楚地了解日志输出情况。
最后,涉及S240。
示例性地,预设时间间隔为2秒。当日志E到达日志输出接口时,在此之前最后一条输出的日志为日志C,输出日志F的第二时间戳为10:00;日志E到达日志输出接口时的第一时间戳为10:01,时间差为1秒,日志E满足时间差小于或等于预设时间间隔的条件,日志E不被输出的。
作为本申请的一种实现方式,为了同步更新不被输出的日志的计数,在上述涉及到的不输出日志的步骤之后,还可以包括以下步骤:
响应于检测到时间差小于或等于预设时间间隔,更新不被输出的日志的计数。
响应于检测到时间差小于或等于预设时间间隔,即每当有一条不被输出的日志的时候,就更新不被输出的日志的计数,可以在现有的不被输出的日志的计数的基础上加1。
示例性地,不被输出的日志的计数为skipCount,不输出日志之后,skipCount=skipCount+1。
由此,通过响应于检测到时间差小于或等于预设时间间隔,更新不被输出的日志的计数,以保证日志输出的稳定性。
综上,本公开实施例通过确定最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差,响应于检测到时间差大于预设时间间隔,输出至少包括日志的日志信息;响应于检测到时间差小于或等于预设时间间隔,不输出日志。这样,无论待输出日志量有多少,都能够保证预设时间内输出固定数量的日志。由此,能够在待输出日志量不断变化的日志输出过程中,保证日志的匀速稳定输出,以保证日志输出的强适应性,而且通过时间戳之间的时间差来判断是否输出日志,能够节约内存。
基于上述日志输出方法,本公开还提供了一种实现日志输出的方法。具体结合图3进行说明。
图3是根据一示例性实施例示出的一种实现日志输出的方法的流程图。
S301,获取日志到达输出接口的第一时间戳。
当日志到达输出接口时,获取当前的时间戳,作为第一时间戳。
S302,确定第二时间戳与第一时间戳之间的时间差。
确定输出接口最后一次输出日志的时间戳与日志到达输出接口时的第一时间戳之间的时间差。
S303,判断时间差是否大于预设时间间隔。
若时间差大于预设时间间隔,则执行S304;
若时间差不大于预设时间间隔,则执行S305。
S304,将第二时间戳更新为第一时间戳,输出日志。
输出时间差大于预设时间间隔的日志。
S305,不输出日志。
不输出时间差不大于预设时间间隔的日志,即不输出时间差不大于预设时间间隔的日志。
上述各步骤的具体实现方式将在下文中进行详细描述。
综上,本公开实施例通过确定最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差,响应于检测到时间差大于预设时间间隔,输出至少包括日志的日志信息;响应于检测到时间差小于或等于预设时间间隔,不输出日志。这样,无论待输出日志量有多少,都能够保证预设时间内输出固定数量的日志。由此,能够在待输出日志量不断变化的日志输出过程中,保证日志的匀速稳定输出,以保证日志输出的强适应性,而且通过时间戳之间的时间差来判断是否输出日志,能够节约内存。
基于上述日志输出方法,本公开还提供了一种日志输出装置。具体结合图4进行说明。
图4是根据一示例性实施例示出的一种日志输出装置的框图。参照图4,该日志输出装置400可以包括获取模块块410、第一确定模块420、输出模块430和不输出模块440。
获取模块410,被配置为执行获取日志到达输出接口的第一时间戳。
第一确定模块420,被配置为执行确定第一时间戳与第二时间戳之间的时间差,第二时间戳为输出接口最后一次输出日志的时间戳。
输出模块430,被配置为执行响应于检测到时间差大于预设时间间隔,输出日志信息,日志信息至少包括日志。
不输出模块440,被配置为执行响应于检测到时间差小于或等于预设时间间隔,不输出日志。
在本公开实施例中,该日志输出装置400能够通过确定最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差,响应于检测到时间差大于预设时间间隔,输出至少包括日志的日志信息;响应于检测到时间差小于或等于预设时间间隔,不输出日志。这样,无论待输出日志量有多少,都能够保证预设时间内输出固定数量的日志。由此,能够在待输出日志量不断变化的日志输出过程中,保证日志的匀速稳定输出,以保证日志输出的强适应性,而且通过时间戳之间的时间差来判断是否输出日志,能够节约内存。
在本公开一些实施例中,该日志输出装置400还可以包括:第一更新模块,被配置为执行将第二时间戳更新为第一时间戳。
在本公开一些实施例中,该日志输出装置400还可以包括:累计模块,被配置为执行响应于检测到时间差小于或等于预设时间间隔,累计不被输出的日志的计数。
其中,上述涉及到的日志信息中还包括:在目标时间段内不被输出的日志的计数;其中,目标时间段为从第二时间戳到第一时间戳之间的时间段。
在本公开一些实施例中,该日志输出装置400还可以包括:
重置模块,被配置为执行将不被输出的日志的计数重置为初始值;所述初始值用于指示预先设定的所述不被输出的日志的数量。
在本公开一些实施例中,该日志输出装置400还可以包括:
第二更新模块,被配置为执行响应于检测到所述时间差小于或等于所述预设时间间隔,更新所述不被输出的日志的计数。
在本公开一些实施例中,该日志输出装置400还可以包括:
提取模块,被配置为执行在检测到所述日志内容包括预设信息的情况下,在所述日志内容中提取与所述预设信息相关的特征参数。
第二确定模块,被配置为执行将所述特征参数确定为所述日志类型。
匹配模块,被配置为执行根据日志类型与第二时间戳之间的预设对应关系,匹配与所述日志的日志类型对应的所述第二时间戳。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种服务器的框图。参照图5,本公开实施例还提供了一种服务器,包括处理器510、通信接口520、存储器530和通信总线540,其中,处理器510、通信接口520和存储器530通过通信总线540完成相互间的通信。
该存储器530,用于存放处理器510可执行的指令。
该处理器510,用于执行存储器530上所存放的指令时,实现如下步骤:
获取日志到达输出接口的第一时间戳;确定第二时间戳与第一时间戳之间的时间差,第二时间戳为输出接口最后一次输出日志的时间戳;响应于检测到时间差大于预设时间间隔,输出日志信息,日志信息至少包括日志;响应于检测到时间差小于或等于预设时间间隔,不输出日志。
可见,应用本公开实施例,通过确定最后一次输出日志的第二时间戳与日志到达输出接口的第一时间戳之间的时间差,响应于检测到时间差大于预设时间间隔,输出至少包括日志的日志信息;响应于检测到时间差小于或等于预设时间间隔,不输出日志。这样,无论待输出日志量有多少,都能够保证预设时间内输出固定数量的日志。由此,能够在待输出日志量不断变化的日志输出过程中,保证日志的匀速稳定输出,以保证日志输出的强适应性,而且通过时间戳之间的时间差来判断是否输出日志,能够节约内存。
图6是根据一示例性实施例示出的用于数据处理的设备的框图。例如,该设备600可以被提供为一服务器。参照图6,服务器600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述任一实施例所述的日志输出方法。
该设备600还可以包括一个电源组件626被配置为执行设备600的电源管理,一个有线或无线网络接口650被配置为将设备600连接到网络,和一个输入输出(I/O)接口658。设备600可以操作基于存储在存储器632的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在本公开一些实施例中,还提供了一种计算机可读存储介质,当该计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述任一实施例所述的日志输出方法。
可选地,该计算机可读存储介质可以是非临时性计算机可读存储介质,示例性的,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本公开一些实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由服务器的处理器执行时,使得服务器能够执行上述任一实施例所述的日志输出方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种日志输出方法,其特征在于,包括:
获取日志到达输出接口的第一时间戳;
确定所述第一时间戳与第二时间戳之间的时间差,所述第二时间戳为所述输出接口最后一次输出日志的时间戳;
响应于检测到所述时间差大于预设时间间隔,输出日志信息,所述日志信息至少包括所述日志;
响应于检测到所述时间差小于或等于所述预设时间间隔,不输出所述日志;
其中,在所述确定所述第一时间戳与第二时间戳之间的时间差之前,所述方法还包括:
在检测到所述日志内容包括预设信息的情况下,在所述日志内容中提取与所述预设信息相关的特征参数;
将所述特征参数确定为所述日志类型;
根据日志类型与第二时间戳之间的预设对应关系,匹配与所述日志的日志类型对应的所述第二时间戳。
2.根据权利要求1所述的方法,其特征在于,在所述响应于检测到所述时间差大于预设时间间隔之后,所述方法还包括:
将所述第二时间戳更新为所述第一时间戳。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于检测到所述时间差小于或等于所述预设时间间隔,累计不被输出的日志的计数。
4.根据权利要求3所述的方法,其特征在于,所述日志信息中还包括:在目标时间段内所述不被输出的日志的计数;
其中,所述目标时间段为从所述第二时间戳到所述第一时间戳之间的时间段。
5.根据权利要求4所述的方法,其特征在于,在所述响应于检测到所述时间差大于预设时间间隔之后,所述方法还包括:
将所述不被输出的日志的计数重置为初始值;所述初始值用于指示预先设定的所述不被输出的日志的数量。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于检测到所述时间差小于或等于所述预设时间间隔,更新所述不被输出的日志的计数。
7.一种日志输出装置,其特征在于,包括:
获取模块,被配置为执行获取日志到达输出接口的第一时间戳;
第一确定模块,被配置为执行确定第二时间戳与所述第一时间戳之间的时间差,所述第二时间戳为所述输出接口最后一次输出日志的时间戳;
输出模块,被配置为执行响应于检测到所述时间差大于预设时间间隔,输出日志信息,所述日志信息至少包括所述日志;
不输出模块,被配置为执行响应于检测到所述时间差小于或等于所述预设时间间隔,不输出所述日志;
所述装置还包括:
提取模块,被配置为执行在检测到所述日志内容包括预设信息的情况下,在所述日志内容中提取与所述预设信息相关的特征参数;
第二确定模块,被配置为执行将所述特征参数确定为所述日志类型;
匹配模块,被配置为执行根据日志类型与第二时间戳之间的预设对应关系,匹配与所述日志的日志类型对应的所述第二时间戳。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一更新模块,被配置为执行将所述第二时间戳更新为所述第一时间戳。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
累计模块,被配置为执行响应于检测到所述时间差小于或等于所述预设时间间隔,累计不被输出的日志的计数。
10.根据权利要求9所述的装置,其特征在于,所述日志信息中还包括:在目标时间段内所述不被输出的日志的计数;其中,所述目标时间段为从所述第二时间戳到所述第一时间戳之间的时间段。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
重置模块,被配置为执行将所述不被输出的日志的计数重置为初始值;所述初始值用于指示预先设定的所述不被输出的日志的数量。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二更新模块,被配置为执行响应于检测到所述时间差小于或等于所述预设时间间隔,更新所述不被输出的日志的计数。
13.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的日志输出方法。
14.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如权利要求1至6中任一项所述的日志输出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011607768.7A CN112699015B (zh) | 2020-12-29 | 2020-12-29 | 日志输出方法、装置、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011607768.7A CN112699015B (zh) | 2020-12-29 | 2020-12-29 | 日志输出方法、装置、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112699015A CN112699015A (zh) | 2021-04-23 |
CN112699015B true CN112699015B (zh) | 2023-12-19 |
Family
ID=75512437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011607768.7A Active CN112699015B (zh) | 2020-12-29 | 2020-12-29 | 日志输出方法、装置、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112699015B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430161A (zh) * | 2015-10-29 | 2016-03-23 | 小米科技有限责任公司 | 消息处理方法及装置 |
CN109840178A (zh) * | 2017-11-28 | 2019-06-04 | 合肥杰发科技有限公司 | 一种监测日志信息的方法、移动终端以及装置 |
CN111143317A (zh) * | 2019-12-29 | 2020-05-12 | 北京浪潮数据技术有限公司 | 一种日志存储方法、装置、设备及可读存储介质 |
CN111711642A (zh) * | 2020-07-15 | 2020-09-25 | 网易(杭州)网络有限公司 | 协议请求处理方法、装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200050692A1 (en) * | 2018-08-10 | 2020-02-13 | Microsoft Technology Licensing, Llc | Consistent read queries from a secondary compute node |
-
2020
- 2020-12-29 CN CN202011607768.7A patent/CN112699015B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430161A (zh) * | 2015-10-29 | 2016-03-23 | 小米科技有限责任公司 | 消息处理方法及装置 |
CN109840178A (zh) * | 2017-11-28 | 2019-06-04 | 合肥杰发科技有限公司 | 一种监测日志信息的方法、移动终端以及装置 |
CN111143317A (zh) * | 2019-12-29 | 2020-05-12 | 北京浪潮数据技术有限公司 | 一种日志存储方法、装置、设备及可读存储介质 |
CN111711642A (zh) * | 2020-07-15 | 2020-09-25 | 网易(杭州)网络有限公司 | 协议请求处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112699015A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739727B (zh) | 微服务架构中的服务监控方法及装置 | |
CN109284269B (zh) | 异常日志分析方法、装置、存储介质及服务器 | |
CN108156006B (zh) | 一种埋点数据上报方法、装置及电子设备 | |
US10558544B2 (en) | Multiple modeling paradigm for predictive analytics | |
US20070038896A1 (en) | Call-stack pattern matching for problem resolution within software | |
CN112631913A (zh) | 应用程序的运行故障监控方法、装置、设备和存储介质 | |
US10528456B2 (en) | Determining idle testing periods | |
US20140143625A1 (en) | Computer-readable recording medium, failure prediction device and applicability determination method | |
US20180095819A1 (en) | Incident analysis program, incident analysis method, information processing device, service identification program, service identification method, and service identification device | |
CN113448854A (zh) | 一种回归测试方法和装置 | |
CN112817831A (zh) | 应用性能监测方法、装置、计算机***和可读存储介质 | |
CN112434043A (zh) | 一种数据同步方法、装置、电子设备及介质 | |
US20150074808A1 (en) | Rootkit Detection in a Computer Network | |
WO2020233065A1 (zh) | 网络环境测试方法、装置及终端设备 | |
CN112699015B (zh) | 日志输出方法、装置、服务器及计算机可读存储介质 | |
CN110347572B (zh) | 一种性能日志输出方法、装置、***、设备及介质 | |
CN112054934A (zh) | 一种协议检测方法、装置及电子设备 | |
CN113014448B (zh) | 一种登录状态规则提取方法、装置及电子设备 | |
CN112764990B (zh) | 一种目标进程的监控方法、装置及计算机设备 | |
CN112988776A (zh) | 文本解析规则的更新方法、装置、设备及可读存储介质 | |
CN115129548A (zh) | 一种告警分析方法、装置、设备及介质 | |
CN108764607B (zh) | 用户月数据复检方法、装置、设备及存储介质 | |
CN108255669A (zh) | 监视计算机基础设施中执行的应用的批处理的方法和*** | |
CN113157048B (zh) | 一种基于多终端时间轴的行为数据分析方法及相关组件 | |
CN111475322A (zh) | 定位stuck线程的方法、装置、计算机设备及可读存储介质 |
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 |