CN113268401B - 日志信息的输出方法、装置及计算机可读存储介质 - Google Patents
日志信息的输出方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113268401B CN113268401B CN202110669497.6A CN202110669497A CN113268401B CN 113268401 B CN113268401 B CN 113268401B CN 202110669497 A CN202110669497 A CN 202110669497A CN 113268401 B CN113268401 B CN 113268401B
- Authority
- CN
- China
- Prior art keywords
- log
- target
- information
- proxy object
- mark information
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
Abstract
本发明公开了一种日志信息的输出方法、装置及计算机可读存储介质,所述方法包括:检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;输出所述目标日志代理对象对应的日志信息。本发明能够针对某个特定业务输出日志,以提升日志输出的灵活性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种日志信息的输出方法、装置及计算机可读存储介质。
背景技术
在计算机领域中,对于软件工程而言,为了对日常运维数据、软件工程环境的异常或者错误信息进行信息溯源,存在对应的日志输出功能,为实现日志输出功能,可以对软件工程中的全部目标类额外编写代理类,进一步输出日志,此方式只能决定某个类中日志是全部输出或全部不输出,无法针对特定内部业务日志进行调整,因而缺乏灵活性,基于此,本申请所要解决的技术问题为,如何针对某个特定业务输出日志,以提升日志输出的灵活性。
发明内容
本发明的主要目的在于提供一种日志信息的输出方法、装置及计算机可读存储介质,旨在解决如何针对某个特定业务输出日志,以提升日志输出的灵活性的技术问题。
为实现上述目的,本发明提供一种日志信息的输出方法,所述方法包括:
检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;
输出所述目标日志代理对象对应的日志信息。
可选地,所述检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象的步骤包括:
检测到触发日志输出时,获取所述目标标记信息对应的优先级;
在检测到所述优先级大于或者等于设定优先级时,获取所述目标标记信息对应的所述目标日志代理对象。
可选地,所述获取所述目标标记信息对应的优先级的步骤之后,还包括:
在检测到所述优先级小于所述设定优先级时,检测所述目标标记信息与设定标记信息是否匹配;
在所述目标标记信息与所述设定标记信息匹配时,获取所述目标标记信息对应的所述目标日志代理对象。
可选地,所述获取所述目标标记信息对应的优先级的步骤包括:
获取所述目标标记信息关联的时间戳;
根据所述时间戳确定所述优先级。
可选地,所述方法还包括:
获取终端设备发送的与标记信息关联的信息;
在所述关联的信息中包括所述目标业务时,将所述标记信息确定为所述目标标记信息;
根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象;
保存所述目标标记信息对应的所述目标日志代理对象。
可选地,所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤之后,还包括:
在检测到日志输出类型为第一类型时,删除原日志代理对象,执行所述保存所述目标标记信息对应的所述目标日志代理对象的步骤,所述原日志代理对象为生成所述目标日志代理对象之前存在的最新日志代理对象;
或者,在检测到所述日志输出类型为第二类型时,在预设时间段内保存所述目标日志代理对象;
在当前时间不在所述预设时间段内时,删除所述目标日志代理对象,并将所述原日志代理对象更新为所述目标日志代理对象并保存。
可选地,所述在所述关联的信息中包括所述目标业务时,将所述标记信息确定为所述目标标记信息的步骤之后,还包括:
检测当前资源占用率;
在所述当前资源占用率小于或者等于设定资源占用率时,执行根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤;
在所述当前资源占用率大于所述设定资源占用率时,计时得到目标时长,并更新计时次数;
在所述目标时长达到预设时长时,返回执行所述检测当前资源占用率的步骤;
在所述计时次数大于设定次数时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤,并对所述计时次数清零。
此外,为实现上述目的,本发明还提供一种日志信息的输出装置,所述日志信息的输出装置包括:
获取模块,用于检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;
输出模块,用于输出所述目标日志代理对象对应的日志信息。
此外,为实现上述目的,本发明还提供一种日志信息的输出装置,所述日志信息的输出装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的日志信息的输出程序,所述日志信息的输出程序被所述处理器执行时实现上述任一项所述的日志信息输出的方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有日志信息的输出程序,所述日志信息的输出程序被处理器执行时实现上述任一项所述的日志信息的输出方法的步骤。
本发明实施例提出的一种日志信息的输出方法、装置及计算机可读存储介质,通过检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;输出所述目标日志代理对象对应的日志信息,由于目标标记信息与目标日志代理对象是对应的,而目标标记信息是需要输出的目标业务对应的标记信息,因为目标标记信息与目标业务也是对应的,此外,目标日志代理对象是基于日志代理类生成的对象,日志代理类是对日志类进行代理的类,使得日志代理对象与目标业务是相对应的,因而在基于日志代理对象输出日志信息时,日志信息与目标业务也是相对应的,在需要对特定业务输出日志信息时,仅需要对标记信息进行更改,以形成目标标记信息,即可输出目标业务对应的日志信息,避免仅能针对软件工程中所有类判定输出日志或者不输出日志导致灵活性低的技术问题,能够针对特定业务输出日志,以提升日志输出的灵活性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;
图2为本发明日志信息的输出方法第一实施例的流程示意图;
图3为本发明日志信息的输出方法第二实施例的流程示意图;
图4为本发明日志信息的输出方法第三实施例的流程示意图;
图5为本发明日志信息的输出方法第四实施例的流程示意图;
图6为本发明实施例涉及的日志信息的输出装置的功能模块示意图;
图7为本发明实施例涉及的优先级判定的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图。
本发明实施例涉及的日志信息的输出装置可以是服务器。
如图1所示,该装置可以包括:处理器1001,例如CPU,通信接口1002,存储器1003,通信总线1004。其中,通信总线1004用于实现这些组件之间的连接通信。通信接口1002可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1003可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1003可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1003中可以包括操作系统通信模块以及日志信息的输出程序。
在图1所示的装置中,通信接口1002主要用于连接用户终端,与用户终端行数据通信;而处理器1001可以用于调用存储器1003中存储的日志信息的输出程序,并执行以下操作:
检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;
输出所述目标日志代理对象对应的日志信息。
进一步地,处理器1001可以调用存储器1003中存储的日志信息的输出程序,还执行以下操作:
检测到触发日志输出时,获取所述目标标记信息对应的优先级;
在检测到所述优先级大于或者等于设定优先级时,获取所述目标标记信息对应的所述目标日志代理对象。
进一步地,处理器1001可以调用存储器1003中存储的日志信息的输出程序,还执行以下操作:
在检测到所述优先级小于所述设定优先级时,检测所述目标标记信息与设定标记信息是否匹配;
在所述目标标记信息与所述设定标记信息匹配时,获取所述目标标记信息对应的所述目标日志代理对象。
进一步地,处理器1001可以调用存储器1003中存储的日志信息的输出程序,还执行以下操作:
获取所述目标标记信息关联的时间戳;
根据所述时间戳确定所述优先级。
进一步地,处理器1001可以调用存储器1003中存储的日志信息的输出程序,还执行以下操作:
获取终端设备发送的与标记信息关联的信息;
在所述关联的信息中包括所述目标业务时,将所述标记信息确定为所述目标标记信息;
根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象;
保存所述目标标记信息对应的所述目标日志代理对象。
进一步地,处理器1001可以调用存储器1003中存储的日志信息的输出程序,还执行以下操作:
在检测到日志输出类型为第一类型时,删除原日志代理对象,执行所述保存所述目标标记信息对应的所述目标日志代理对象的步骤,所述原日志代理对象为生成所述目标日志代理对象之前存在的最新日志代理对象;
或者,在检测到所述日志输出类型为第二类型时,在预设时间段内保存所述目标日志代理对象;
在当前时间不在所述预设时间段内时,删除所述目标日志代理对象,并将所述原日志代理对象更新为所述目标日志代理对象并保存。
进一步地,处理器1001可以调用存储器1003中存储的日志信息的输出程序,还执行以下操作:
检测当前资源占用率;
在所述当前资源占用率小于或者等于设定资源占用率时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤;
在所述当前资源占用率大于所述设定资源占用率时,计时得到目标时长,并更新计时次数;
在所述目标时长达到预设时长时,返回执行所述检测当前资源占用率的步骤;
在所述计时次数大于设定次数时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤,并对所述计时次数清零。
参照图2,本发明第一实施例提供一种日志信息的输出方法,所述日志信息的输出方法包括:
步骤S10,检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;
在本实施例中,执行主体为日志信息的输出装置,日志信息的输出装置具体可以是服务器。
检测触发日志输出的方式可以是:检测到目标业务类的调用请求时,确定检测到触发日志输出;目标标记信息为需要输出日志的目标业务对应的标记信息,标记信息是具有唯一性的字符串,标记信息可以关联各类参数,标记信息关联的参数比如时间戳、相关业务模块的信息以及软件工程中的版本信息;日志代理类是基于代理技术得到的类,日志代理类具体所指的是对日志类进行代理的类;通过日志代理类对外部调用方提供服务,即对目标业务提供服务,能够基于日志类的功能实现更复杂多样化的业务能力,同时又具有轻耦合性,不会影响日志类本身的代码、相关研发接口以及协议,可以在工厂模式、代理模式中使用,能够提升研发的便利性。
本实施例中,通过对日志类代理得到日志代理类,避免直接针对目标业务类进行代理的情况下,若对整个工程实现日志输出的功能,则需要对整个工程的所有类额外编写各代理类,对目标业务类的污染或者干扰极大的问题;并且,本实施例基于目标标记信息、目标业务、目标日志代理对象之间存在对应关系,使得对于特定的目标业务,可以获取对应的目标标记信息,进一步可以获取对应的目标日志代理对象,从而通过日志代理对象输出日志信息,可见,避免了只能限定某个类中日志只能全部输出或者均不输出,无法针对特定业务进行调整,缺乏灵活性;从而进一步达到了提升灵活性的效果。
日志类具体可以是公共日志类,基于对公共日志类而非目标业务类进行代理,最大程度上遵循研发基本准则,并降低耦合性,实现工程软件运行状态时的日志输出调整。
目标标记信息具体可以是软件工程版本,同时该软件工程版本具有唯一性;采用软件工程版本的原因在于,软件工程版本能够反映一个迭代版本中相关功能模块的关联关系,且对于研发人员而言更易熟悉;此外,目标标记信息不限于软件工程版本,可以由其他字符串组成。
本实施例的各步骤可以执行于服务器,服务器可以对标记信息进行管理,并通过目标标记信息设定软件工程中的日志输出内容;同时采用调用日志代理类替换示例性技术中直接调用日志类的方式;调用接口中可以包含标记信息;本实施例的日志类包括各种日志框架,比如slf4j、Log4j、Log4net。
步骤S20,输出所述目标日志代理对象对应的日志信息。
在获取到目标日志代理对象之后,日志代理对象作为日志代理类的实例,用于输出日志信息,在具体实现时,调用执行相关的程序,可以基于日志代理对象输出日志信息。
在本实施例中,通过检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;输出所述目标日志代理对象对应的日志信息,由于目标标记信息与目标日志代理对象是对应的,而目标标记信息是需要输出的目标业务对应的标记信息,因为目标标记信息与目标业务也是对应的,此外,目标日志代理对象是基于日志代理类生成的对象,日志代理类是对日志类进行代理的类,使得日志代理对象与目标业务是相对应的,因而在基于日志代理对象输出日志信息时,日志信息与目标业务也是相对应的,在需要对特定业务输出日志信息时,仅需要对标记信息进行更改,以形成目标标记信息,即可输出目标业务对应的日志信息,避免仅能针对软件工程中所有类判定输出日志或者不输出日志导致灵活性低的技术问题,能够针对特定业务输出日志,以提升日志输出的灵活性。
参照图3,本发明,第二实施例提供一种日志信息的输出方法,基于上述图2所示的实施例,所述步骤S10包括:
步骤S11,检测到触发日志输出时,获取所述目标标记信息对应的优先级;
为了实现根据业务需求差异化输出日志的目的,本实施例中,目标标记信息关联有或者对应有优先级,并且,目标标记信息还关联业务参数,从而可以根据目标标记信息关联的业务参数和/或优先级,差异化输出日志信息。
在实现差异化输出日志这一目的时,主要基于目标标记信息实现,目标标记信息通过结合业务模块和开发时间,关联业务参数以及优先级,从而具有业务关联性以及级别差异性。
目标标记信息在用于日志代理类的调用中作为输入参数传输日志代理类进行判断,由于模块研发具有时间上的先后顺序,以及关联模块往往在相近的时间段内研发,目标标记信息也具有延续性、时间性以及优先级,各标记信息关联唯一时间戳,时间戳用于判定标记信息的优先级的高低;基于此,在获取优先级时,可以获取目标标记信息关联的时间戳;根据时间戳确定优先级;时间戳越大,优先级越高。
步骤S12,在检测到所述优先级大于或者等于设定优先级时,获取所述目标标记信息对应的所述目标日志代理对象;
设定优先级是预先设定的优先级参数,设定优先级是用于指示目标标记信息是否满足输出日志的优先级要求的参数;设定优先级也可以与设定标记信息关联,设定标记信息由用户设定并保存。
假设设定标记信息为Flag_section,则获取Flag_section对应的唯一时间戳,并获取目标标记信息Flag对应的唯一时间戳,仅在Flag对应的唯一时间戳大于或者等于Flag_section对应的唯一时间戳时,才会进行日志输出,否则可以无视日志调用,并且不作处理。
步骤S13,在检测到所述优先级小于所述设定优先级时,检测所述目标标记信息与设定标记信息是否匹配;
在检测优先级小于设定优先级的情况下,为了突出日志输出的差异性,还可以进一步判定目标标记信息与设定标记信息是否匹配,判定是否匹配的方式为,判定目标标记信息与设定标记信息的字符串是否相同。
步骤S14,在所述目标标记信息与所述设定标记信息匹配时,获取所述目标标记信息对应的所述目标日志代理对象。
在目标标记信息与设定标记信息匹配的情况下,也可以进行日志输出,从而在优先级不够高时也能实现日志输出。
基于标记信息的差异化日志输出的底层实现,是基于日志框架的日志级别。通用日志框架分为五层日志级别,包括debug、info、warn、error、fatal,严重程度依次提高,代码中调用日志命令时会使用特定日志级别的命令,同时软件工程设定有工程基准级别,只有高于或者等于工程基准界别的日志命令代码才能输出对应的日志代码的日志信息,最低级别为debug。
假定工程设定基准级别为Level-1,该设定基准级别高于debug,当目标类调用日志代理类的日志命令时,输入标记信息Flag,日志代理类在根据上述优先级判断过程判定优先级满足要求可以输出日志时,日志命令的日志级别不变,日志类底层此时将日志级别与基准级别进行比较,并由日志类判定是否输出日志,若优先级不满足要求,则由日志命令代理类调整为最低级别debug级别,进而日志类判定该debug命令是否输出。
参照图7所示,图7为基于目标标记信息的优先级判定示意图,在图7中,Flag为当前日志请求命令对应的目标标识信息,作为日志命令的入参进入日志代理类,Level函数用于获取Flag目标标识信息的优先级,本实施例优先级根据时间戳得到,时间戳越大优先级越高,优先级还可以根据其他方式,比如基于具体业务设定不同的优先级;Log.command命令为日志依赖包的具体日志命令,command包括debug、info、warn、error、fatal,当满足优先级时,command不变,否则降低为最低级被debug级别。
在本实施例中,通过检测到触发日志输出时,获取所述目标标记信息对应的优先级;在检测到所述优先级大于或者等于设定优先级时,获取所述目标标记信息对应的所述目标日志代理对象;在检测到所述优先级小于所述设定优先级时,检测所述目标标记信息与设定标记信息是否匹配;在所述目标标记信息与所述设定标记信息匹配时,获取所述目标标记信息对应的所述目标日志代理对象;能够针对特定目标类或者特定方法中的各个日志命令,只需要对标记信息关联的业务参数进行修改,从而能够基于修改关联的参数的方式确定目标标记信息,使目标标记信息具有业务关联性、级别差异性,业务关联性通过目标标识信息与业务参数关联实现,级别差异性通过与优先级参数关联实现,从而实现软件工程根据业务信息差异化输出日志信息
参照图4,本发明第三实施例提供一种日志信息的输出方法,基于上述图2所示的实施例,所述日志信息的输出方法还包括:
步骤S30,获取终端设备发送的与标记信息关联的信息;
研发人员可以在终端设备上对标记信息关联的信息进行修改,并通过终端设备发送至服务器,服务器获取终端设备发送的与标记信息关联的信息,并基于关联的信息判定该标记信息是否为目标标记信息。
标记信息关联的参数由研发人员设定,可以基于终端设备为研发人员提供对标记信息进行管理的功能,终端设备针对本地保存的目标源码进行管理,主要是针对目标源码中日志源码进行管理;终端设备可以提供搜索功能以及查看功能,搜索功能指基于文本匹配搜索,查看功能指显示对应路径下目标源码中标记信息对应的代码信息,代码信息包括代码类名、路径、日志代码行数;研发人员基于查看功能可以将特定代码类中包含特定标记信息的代码进行比对,通过标记信息的新旧确定特定类或方法中已添加的日志代码新旧情况,以及是否冗余;此外,终端设备还提供软删除功能,软删除功能指向用户提供将对代码进行删除的登记功能,即对待删除的日志代码登记或者关联待删除的指示信息,而不进行实际意义上的删除,在需要进行实际删除时,仍需要终端设备的文本软件进行处理,具体而言,由人工对登记为待删除的代码通过调用文本软件进行查看,并由人工触发确认指令后,终端设备基于确认指令删除相应的日志代码行,避免第三方软件对代码的编写“入侵”所导致的安全风险,并且,代码删除属于对代码的重大调整,通过软删除的方式可以避免代码不经IDE扫描、编译后产生的安全风险。
步骤S40,在所述关联的信息中包括所述目标业务时,将所述标记信息确定为所述目标标记信息;
服务器获取终端设备发送的与标记信息关联的信息,并获取当前线上运行的软件工程中已记录的标记信息,以及关联的的信息中所包括的版本信息、目标业务信息,基于目标业务信息判定目标标记信息,并在关联的信息中包括目标业务时,将标记信息确定为目标标记信息。
在确定目标标记信息之后,基于标记信息触发启动代理任务,标记信息关联的信息中还包括触发时间,基于触发时间触发启动代理任务,启动代理任务指基于目标标记信息获取对应的日志代理类,并基于日志代理类生成特定日志代理对象并保存。
步骤S50,根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象;
确定目标标记信息之后,获取目标标记信息对应的日志代理类,并基于日志代理类生成日志代理对象。
此外,基于不同的应用场景,日志信息具有时效性;日志输出的应用场景一般包括两方面,一方面是对不被持久化入库的日常运维数据进行记录,另一方面是对软件工程环境的异常或错误信息进行信息溯源与问题定位,基于这两种场景,日志类型可分为正常业务记录与临时业务记录,正常业务记录属于持续化的日志记录,需要持续性输出日志信息,临时业务记录仅在研发人员需要的时候进行日志输出,此外两种场景下的日志记录都具有自身有效时间段,不在有效时间段内的日志输出是无效信息,会污染或者干扰有效日志记录,干扰正常信息的查验,浪费日志存储资源;为解决不同场景下存在的上述问题,本实施例还在检测到日志输出类型为第一类型时,删除原日志代理对象,保存目标标记信息对应的目标日志代理对象,原日志代理对象为生成目标日志代理对象之前存在的最新日志代理对象;或者,在检测到日志输出类型为第二类型时,在预设时间段内保存目标日志代理对象;在当前时间不在预设时间段内时,删除目标日志代理对象,并将原日志代理对象更新为目标日志代理对象并保存;第一类型具体可以设置为持久代理类型,第二类型具体可以设置为临时代理类型,在基于目标标记信息触发进行日志代理时,根据目标标记信息关联的参数,判定为持久代理类型或者临时代理类型,在为持久代理类型时,在创建新日志代理对象之后,删除旧日志代理对象,后续以新日志代理对象响应日志调用命令,若判定为临时代理类型,则创建新日志代理对象后,保存旧代理对象但不是使用旧日志代理对象进行日志输出,而使用新日志代理对象进行日志输出,并记录当前时间信息,在达到一定时间段时,删除新日志代理对象,仍以旧日志代理对象进行日志输出,其中,时间段来源于日志信息关联的信息,由研发人员基于终端设备设定。
步骤S60,保存所述目标标记信息对应的所述目标日志代理对象。
在得到目标日志代理对象之后,可以将目标日志代理对象进行保存,目标日志代理对象可以通过工厂模式保存。此外,图4中,步骤S30~S60在步骤S10之前执行,其所代表的含义为,在时间维度上,执行步骤S10之前,步骤S30~步骤S60需要至少执行一次,而就技术方案的实现原理而言,并非每次在执行步骤S10之前都要重新执行步骤S30~步骤S60,只要此前曾执行过一次即可得到目标日志代理对象,从而即可在检测到出发日志输出时,通过目标日志代理对象进行日志输出。
在本实施例中,通过获取终端设备发送的与标记信息关联的信息;在所述关联的信息中包括所述目标业务时,将所述标记信息确定为所述目标标记信息;根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象;保存所述目标标记信息对应的所述目标日志代理对象,从而可以实现对标记信息的管理,并且基于终端设备发送的标记信息关联的信息生成目标日志代理对象,实现服务器侧的标记信息的管理以及日志代理对象的生成;此外,服务器所获取到的标记信息关联的信息由终端设备设定,从而便于研发人员基于终端设备对标记信息关联的信息进行管理,并对代码进行管理,其便利性较高。
参照图5,本发明第四实施例提供一种日志信息的输出方法,基于上述图4所示的实施例,所述步骤S40之后,还包括:
步骤S70,检测当前资源占用率;
检测到触发日志输出时,若服务量较大或者系统硬件占用率较高,则会导致日志信息的输出装置运行不稳定,因而为了避免不稳定的问题,进行日志输出之前,还会检测当前资源占用率,资源占用率包括软件资源占用率以及硬件资源占用率,软件资源占用率是指对装置的各类虚拟资源的占用率,比如对服务量的占用率,硬件资源占用率是指对装置的各类硬件元件的占用率,硬件元件比如CPU(Central Processing unit,中央处理器)。
此外,在基于标记信息触发日志代理时,是基于标记信息关联的定时参数进行触发,定时参数可以由研发人员进行设定,底层实现时可以采用Quartz、Spring等定时框架。
步骤S80,在所述当前资源占用率小于或者等于设定资源占用率时,执行根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤;
设定资源占用率是预先设定的不会导致装置不稳定的占用率阈值,在当前资源占用率小于或者等于设定资源占用率时,根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象。
步骤S90,在所述当前资源占用率大于所述设定资源占用率时,计时得到目标时长,并更新计时次数;
在当前资源占用率大于设定资源占用率时,为了保证新日志代理类的创建和调用的稳定性,会在触发日志代理后自动延时一段时间,在延时后判断是否仍大于设定资源占用率,在仍大于资源占用率的情况下,会继续延后一段时间,并判断与设定资源占用率的关系,若延后次数过多,则主动触发日志代理,并生成日至代理对象,避免无线延后导致的无法进行日志输出的问题。
步骤S100,在所述目标时长达到预设时长时,返回执行所述检测当前资源占用率的步骤;
在目标时长达到预设时长时,则该次延时过程结束,返回检测当前资源占用率,并判断当前资源占用率与设定资源占用率的关系,进行如上循环过程。
步骤S110,在所述计时次数大于设定次数时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤,并对所述计时次数清零。
为了避免循环过程持续进行,导致无法进行正常的日志输出,本实施例通过计时次数设置循环终止的条件,在计时次数大于设定次数时,则终止前述循环过程,并根据目标标记信息对应的日志代理类生成目标标记信息对应的日志代理对象,使得能够在需要输出日志时,能够正常调用目标日志代理对象。
在本实施例中,通过检测当前资源占用率;在所述当前资源占用率小于或者等于设定资源占用率时,执行根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤;在所述当前资源占用率大于所述设定资源占用率时,计时得到目标时长,并更新计时次数;在所述目标时长达到预设时长时,返回执行所述检测当前资源占用率的步骤;在所述计时次数大于设定次数时,执行根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤,并对所述计时次数清零,从而能够避免资源占用率过大的情况下进行日志输出导致的装置不稳定的问题,也能够避免无限拖延创建目标日志代理对象导致的无法正常实现日志输出的问题。
参照图6,图6为本发明日志信息的输出装置一实施例的功能模块示意图,所述装置包括:
获取模块10,用于检测到触发日志输出时,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;
输出模块20,用于输出所述目标日志代理对象对应的日志信息。
在一实施例中,所述获取模块10还用于执行以下操作:
检测到触发日志输出时,获取所述目标标记信息对应的优先级;
在检测到所述优先级大于或者等于设定优先级时,获取所述目标标记信息对应的所述目标日志代理对象。
在一实施例中,所述获取模块10还用于执行以下操作:
在检测到所述优先级小于所述设定优先级时,检测所述目标标记信息与设定标记信息是否匹配;
在所述目标标记信息与所述设定标记信息匹配时,获取所述目标标记信息对应的所述目标日志代理对象。
在一实施例中,所述获取模块10还用于执行以下操作:
获取所述目标标记信息关联的时间戳;
根据所述时间戳确定所述优先级。
在一实施例中,所述日志信息的输出装置还包括确定模块、生成模块以及保存模块,其中:
所述获取模块10,还用于获取终端设备发送的与标记信息关联的信息;
所述确定模块,用于在所述关联的信息中包括所述目标业务时,将所述标记信息确定为所述目标标记信息;
所述生成模块,用于根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象;
所述保存模块,用于保存所述目标标记信息对应的所述目标日志代理对象。
在一实施例中,所述日志信息的输出装置还包括删除模块,其中:
所述删除模块,用于在检测到日志输出类型为第一类型时,删除原日志代理对象,执行所述保存所述目标标记信息对应的所述目标日志代理对象的步骤,所述原日志代理对象为生成所述目标日志代理对象之前存在的最新日志代理对象;
所述保存模块,还用于或者,在检测到所述日志输出类型为第二类型时,在预设时间段内保存所述目标日志代理对象;
所述删除模块,还用于在当前时间不在所述预设时间段内时,删除所述目标日志代理对象,以及所述保存模块还用于将所述原日志代理对象更新为所述目标日志代理对象并保存。
在一实施例中,所述获取模块10还用于执行以下操作:
检测当前资源占用率;
在所述当前资源占用率小于或者等于设定资源占用率时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤;
在所述当前资源占用率大于所述设定资源占用率时,计时得到目标时长,并更新计时次数;
在所述目标时长达到预设时长时,返回执行所述检测当前资源占用率的步骤;
在所述计时次数大于设定次数时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤,并对所述计时次数清零。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台日志信息的输出装置(可以是服务器)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种日志信息的输出方法,其特征在于,所述方法包括:
获取终端设备发送的与标记信息关联的信息;
在所述关联的信息中包括目标业务时,将所述标记信息确定为目标标记信息;
根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的目标日志代理对象;
保存所述目标标记信息对应的所述目标日志代理对象;
检测到触发日志输出时,获取所述目标标记信息对应的优先级,所述优先级由目标标记信息关联的时间戳确定;
在检测到所述优先级小于设定优先级时,检测所述目标标记信息对应的日志级别;
当所述日志级别大于预设级别,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;
输出所述目标日志代理对象对应的日志信息。
2.如权利要求1所述的日志信息的输出方法,其特征在于,所述获取所述目标标记信息对应的优先级的步骤之后,还包括:
在检测到所述优先级大于或者等于设定优先级时,获取所述目标标记信息对应的所述目标日志代理对象。
3.如权利要求1所述的日志信息的输出方法,其特征在于,所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤之后,还包括:
在检测到日志输出类型为第一类型时,删除原日志代理对象,执行所述保存所述目标标记信息对应的所述目标日志代理对象的步骤,所述原日志代理对象为生成所述目标日志代理对象之前存在的最新日志代理对象;
或者,在检测到所述日志输出类型为第二类型时,在预设时间段内保存所述目标日志代理对象;
在当前时间不在所述预设时间段内时,删除所述目标日志代理对象,并将所述原日志代理对象更新为所述目标日志代理对象并保存。
4.如权利要求1所述的日志信息的输出方法,其特征在于,所述在所述关联的信息中包括所述目标业务时,将所述标记信息确定为所述目标标记信息的步骤之后,还包括:
检测当前资源占用率;
在所述当前资源占用率小于或者等于设定资源占用率时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤;
在所述当前资源占用率大于所述设定资源占用率时,计时得到目标时长,并更新计时次数;
在所述目标时长达到预设时长时,返回执行所述检测当前资源占用率的步骤;
在所述计时次数大于设定次数时,执行所述根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的所述日志代理对象的步骤,并对所述计时次数清零。
5.一种日志信息的输出装置,其特征在于,所述日志信息的输出装置包括:
获取模块,用于获取终端设备发送的与标记信息关联的信息;在所述关联的信息中包括目标业务时,将所述标记信息确定为目标标记信息;根据所述目标标记信息对应的日志代理类,生成所述目标标记信息对应的日志代理对象;保存所述目标标记信息对应的所述目标日志代理对象;检测到触发日志输出时,获取所述目标标记信息对应的优先级,所述优先级由目标标记信息关联的时间戳确定;在检测到所述优先级小于设定优先级时,检测所述目标标记信息对应的日志级别;当所述日志级别大于预设级别,获取目标标记信息对应的目标日志代理对象,所述目标标记信息为需要输出日志的目标业务对应的标记信息,所述目标日志代理对象为根据日志代理类生成的对象,所述日志代理类为对日志类进行代理的类;
输出模块,用于输出所述目标日志代理对象对应的日志信息。
6.一种日志信息的输出装置,其特征在于,所述日志信息的输出装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的日志信息的输出程序,所述日志信息的输出程序被所述处理器执行时实现如权利要求1至4中任一项所述的日志信息输出的方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有日志信息的输出程序,所述日志信息的输出程序被处理器执行时实现如权利要求1至4中任一项所述的日志信息的输出方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110669497.6A CN113268401B (zh) | 2021-06-16 | 2021-06-16 | 日志信息的输出方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110669497.6A CN113268401B (zh) | 2021-06-16 | 2021-06-16 | 日志信息的输出方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113268401A CN113268401A (zh) | 2021-08-17 |
CN113268401B true CN113268401B (zh) | 2022-10-04 |
Family
ID=77235374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110669497.6A Active CN113268401B (zh) | 2021-06-16 | 2021-06-16 | 日志信息的输出方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268401B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513400A (zh) * | 2021-12-30 | 2022-05-17 | 上海川源信息科技有限公司 | 一种日志聚合系统及一种提高日志聚合系统可用性的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260292A (zh) * | 2015-10-09 | 2016-01-20 | 中国人民财产保险股份有限公司 | 一种日志记录方法、装置及系统 |
CN110990228A (zh) * | 2019-12-13 | 2020-04-10 | 集奥聚合(北京)人工智能科技有限公司 | 数据接口监控方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5320212B2 (ja) * | 2009-08-11 | 2013-10-23 | 日本電信電話株式会社 | ロガーライブラリ実装装置およびロガーライブラリ実装装置における制御方法 |
CN103377116B (zh) * | 2012-04-27 | 2016-02-10 | 国际商业机器公司 | 用于在分布式信息系统中记录和分析日志的方法和装置 |
CN107273280B (zh) * | 2017-06-30 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 一种日志处理方法、装置、电子设备和存储介质 |
CN107678933A (zh) * | 2017-09-28 | 2018-02-09 | 中国平安人寿保险股份有限公司 | 日志生成管理方法、装置、设备及计算机可读存储介质 |
CN111552621B (zh) * | 2020-04-27 | 2023-09-01 | 中国银行股份有限公司 | 日志信息处理方法、装置及服务设备 |
-
2021
- 2021-06-16 CN CN202110669497.6A patent/CN113268401B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260292A (zh) * | 2015-10-09 | 2016-01-20 | 中国人民财产保险股份有限公司 | 一种日志记录方法、装置及系统 |
CN110990228A (zh) * | 2019-12-13 | 2020-04-10 | 集奥聚合(北京)人工智能科技有限公司 | 数据接口监控方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113268401A (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109688097B (zh) | 网站防护方法、网站防护装置、网站防护设备及存储介质 | |
US8874091B2 (en) | Automatic device capabilities change notification | |
US7890959B2 (en) | System and method for message lifetime management | |
CN109558320B (zh) | 系统测试方法、装置、系统、设备及计算机可读存储介质 | |
US9514176B2 (en) | Database update notification method | |
CN111367925A (zh) | 数据动态实时更新方法、装置及存储介质 | |
CN110019038B (zh) | 文件引用分析方法、装置、设备及计算机可读存储介质 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN116107846B (zh) | 一种基于EBPF的Linux系统事件监控方法及装置 | |
US8326913B2 (en) | Method and system for service contract discovery | |
CN113268401B (zh) | 日志信息的输出方法、装置及计算机可读存储介质 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
CN109559121B (zh) | 交易路径调用异常分析方法、装置、设备及可读存储介质 | |
CN108650123B (zh) | 故障信息记录方法、装置、设备和存储介质 | |
CN105447384B (zh) | 一种反监控的方法、系统及移动终端 | |
CN113407416B (zh) | 一种文件操作ip溯源方法和系统 | |
CN110231921B (zh) | 日志打印方法、装置、设备及计算机可读存储介质 | |
CN112685102A (zh) | 一种网关插件热加载方法、装置、设备及介质 | |
CN112019385B (zh) | 一种云平台组件删除方法、装置、设备及存储介质 | |
JP7470769B1 (ja) | クラウドのapiの変更を分析する方法 | |
CN112051985B (zh) | 事件触发方法、装置、电子设备及可读存储介质 | |
CN117742897B (zh) | 一种基于容器镜像漏洞自动修复的实现方法 | |
KR100910802B1 (ko) | 장치관리 시스템 및 장치관리 객체 관리 방법 | |
CN114625395A (zh) | 数据处理方法、装置及电子设备 | |
CN112558975A (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 |