日志文件的订阅方法、终端设备及存储介质与流程

文档序号:20509851发布日期:2020-04-24 18:23阅读:185来源:国知局
日志文件的订阅方法、终端设备及存储介质与流程

本发明涉及通信技术领域、尤其涉及一种日志文件的订阅方法、终端设备及存储介质。



背景技术:

目前,获取日志文件的方式主要是在连接到远程服务器后,通过远程执行命令抓取研发日志,再返回到客户端。但这种方式只能抓取所有日志文件,同时会抓取到很多不需要的日志,造成效率低下的问题。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明实施例的主要目的在于提供一种日志文件的订阅方法,旨在解决现有技术中通过远程抓取所有日志文件,造成效率低下的技术问题。

为解决上述问题,本发明实施例提供一种日志文件的订阅方法,包括以下内容:

服务端获取录制的日志文件的属性信息,所述属性信息包括所述日志文件的名称以及级别;

获取所述属性信息满足预设条件的所述日志文件,并将满足所述预设条件的日志文件作为待发送日志文件;

将所述待发送日志文件添加至消息队列,以供客户端从所述服务端的消息队列获取所述待发送日志文件。

可选地,所述服务端获取录制的日志文件的属性信息的步骤之前,还包括:

获取预设框架类型;

根据所述框架类型对应的录制方法录制所述日志文件。

可选地,所述获取所述属性信息满足预设条件的所述日志文件,并将满足所述预设条件的日志文件作为待发送日志文件的步骤包括:

获取所述框架类型对应的拦截方法;

根据所述拦截方法拦截所述属性信息满足所述预设条件的所述日志文件,并将所述日志文件作为待发送日志文件。

可选地,所述将所述待发送日志文件添加至消息队列的步骤包括:

获取所述框架类型对应的增强方法;

根据所述增强方法添加对应的字节码至所述待发送日志文件的代码中,得到增强后的所述待发送日志文件;

将增强后的所述待发送日志文件添加至所述消息队列。

可选地,所述将所述待发送日志文件添加至消息队列,以供客户端从所述服务端的消息队列获取所述待发送日志文件的步骤之后,还包括:

在检测到所述客户端接收所述待发送日志文件后,所述服务端删除所述待发送日志文件中添加的字节码。

可选地,所述将所述待发送日志文件添加至消息队列的步骤包括:

将所述待发送日志文件添加至所述待发送日志文件的属性信息对应的消息队列。

此外,为解决上述问题,本发明实施例还提供一种终端设备,所述终端设备包括处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的日志文件的订阅程序,所述日志文件的订阅程序被所述处理器执行时实现如上所述的日志文件的订阅方法的步骤。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有日志文件的订阅程序,所述日志文件的订阅程序被处理器执行时实现如上所述的日志文件的订阅方法的步骤。

本发明实施例提出的一种日志文件的订阅方法,通过将满足预设名称以及级别的日志文件发送到消息队列,以供客户端订阅需要的日志文件,可有效避免抓取不需要的日志文件,提高抓取日志文件的准确度和效率的有益效果。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明日志文件的订阅方法第一实施例的流程示意图;

图3为本发明日志文件的订阅方法第二实施例的流程示意图;

图4为本发明日志文件的订阅方法第三实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:服务端获取录制的日志文件的属性信息,所述属性信息包括所述日志文件的名称以及级别;获取所述属性信息满足预设条件的所述日志文件,并将满足所述预设条件的日志文件作为待发送日志文件;将所述待发送日志文件添加至消息队列,以供客户端从所述服务端的消息队列获取所述待发送日志文件。

由于现有技术中通过远程抓取所有日志文件,造成效率低下的技术问题。

本发明实施例提供一种解决方案,通过将满足预设名称以及级别的日志文件发送到消息队列,以供客户端订阅需要的日志文件,可有效避免抓取不需要的日志文件,提高抓取日志文件的准确度和效率的有益效果。

如图1所示,图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例的执行主体可以是台式电脑,也可以是便携式计算机、平板电脑等可移动式或不可移动式终端设备。

如图1所示,该终端设备可以包括:处理器1001,例如cpu,通信总线1002,存储器1003,用户接口1004。其中,通讯总线1002用于实现这些组件之间的连接通信。存储器1003可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),如磁盘存储器。存储器1003可选地还可以是独立于前述处理器1001的存储装置。用户接口1004可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1004还可以包括标准的有线接口、无线接口。

本领域技术人员可以理解,图1示出的终端设备的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,用户接口1004主要用于连接客户端(用户端),与客户端进行数据通信;作为一种计算机存储介质的存储器1003可以包括操作系统以及日志文件的订阅程序,而处理器1001可以用于调用存储器1003中存储的日志文件的订阅程序,并执行以下步骤:

服务端获取录制的日志文件的属性信息,所述属性信息包括所述日志文件的名称以及级别;

获取所述属性信息满足预设条件的所述日志文件,并将满足所述预设条件的日志文件作为待发送日志文件;

将所述待发送日志文件添加至消息队列,以供客户端从所述服务端的消息队列获取所述待发送日志文件。

进一步地,处理器1001可以用于调用存储器1003中存储的日志文件的订阅程序,并执行以下步骤:

获取预设框架类型;

根据所述框架类型对应的录制方法录制所述日志文件。

进一步地,处理器1001可以用于调用存储器1003中存储的日志文件的订阅程序,并执行以下步骤:

获取所述框架类型对应的拦截方法;

根据所述拦截方法拦截所述属性信息满足所述预设条件的所述日志文件,并将所述日志文件作为待发送日志文件。

进一步地,处理器1001可以用于调用存储器1003中存储的日志文件的订阅程序,并执行以下步骤:

获取所述框架类型对应的增强方法;

根据所述增强方法添加对应的字节码至所述待发送日志文件的代码中,得到增强后的所述待发送日志文件;

将增强后的所述待发送日志文件添加至所述消息队列。

进一步地,处理器1001可以用于调用存储器1003中存储的日志文件的订阅程序,并执行以下步骤:

在检测到所述客户端接收所述待发送日志文件后,所述服务端删除所述待发送日志文件中添加的字节码。

进一步地,处理器1001可以用于调用存储器1003中存储的日志文件的订阅程序,并执行以下步骤:

将所述待发送日志文件添加至所述待发送日志文件的属性信息对应的消息队列。

基于上述终端的结构,提出本发明第一实施例,参照图2,图2为本发明日志文件的订阅方法第一实施例的流程示意图,所述日志文件的订阅方法包括以下步骤:

步骤s10,服务端获取录制的日志文件的属性信息,所述属性信息包括所述日志文件的名称以及级别;

在本实施例中,执行主体为服务端。服务端可以是vmock服务器等任一意应用服务器。服务端可根据客户端的需求发送指定类型的日志文件到服务端的消息队列,以供客户端订阅日志文件,其中,客户端可以是测试端,可将订阅的日志文件进行校验,以掌握服务端的运行状况。

可选地,服务端上提供了api(applicationprograminterface,应用程序接口),可通过api实现不同软件之间的相互通信。客户端可通过api接口接入预先写好的程序代码,在需要使用时执行程序代码以调用服务端的公共类方法,实现需要进行的功能。

日志文件用于记录服务端上应用程序代码的运行状况,包括执行时间、执行时长、脚本内容、脚本内容的摘要信息等。日志文件的属性信息包括名称以及级别。日志文件名称可以是应用程序的名称。

日志文件的级别可包括debug、info、warn、error以及fatal。其中,debug级别最低,可以用于获取系统运行状态;info相对较重要,可用于输出信息,可将系统的当前状态反馈给最终用户;warn表示警告,表明系统处于不正常的状态,但系统可继续运行,错误的代码也可修复;error表示错误,可以修复,但无法确定系统是否能正常运行下去;fatal表示严重错误,比较严重,可以确定当前的错误已经无法修复,并且如果系统继续运行下去将后果严重。

服务端可在录制的过程中获取日志文件的名称以及级别,可自动识别日志文件的名称以及级别。

可选地,服务端获取录制的日志文件的属性信息之前,还包括:

获取预设框架类型;

根据所述框架类型对应的录制方法录制所述日志文件。

服务端可支持多种框架类型录制日志文件,其中,框架类型包括logback,log4j以及log4j2。可以理解的是,不同的框架类型对应不同的录制方法。

预设框架类型可以是客户端所请求的框架类型,也可以是应用程序自身对应的框架类型,包括logback,log4j以及log4j2中的一个。

服务端根据预设框架类型对应的录制方法,记录服务端上应用程序的运行状态,生成对应的日志文件。

步骤s20,获取所述属性信息满足预设条件的所述日志文件,并将满足所述预设条件的日志文件作为待发送日志文件;

客户端可通过api发送预设条件给服务端。可选地,客户端可将部分代码通过api接入服务端,在需要获取特定的日志文件时,控制接入的代码调用公共类方法订阅满足预设条件的日志文件。其中,预设条件包括日志文件的预设名称以及预设级别。

在日志文件的属性信息即日志文件的名称以及级别满足预设名称以及预设级别时,将满足条件的日志文件作为待发送日志文件,即客户端需要订阅的日志文件。

可选地,服务端的软件开发工具包提供了vmockremotecilent类,而客户端接入的代码可调用vmockremotecilent类中的recordbusinesslog方法获取满足预设条件的待发送日志文件。

步骤s30,将所述待发送日志文件添加至消息队列,以供客户端从所述服务端的消息队列获取所述待发送日志文件。

服务端在获取到待发送日志文件后,将待发送日志文件添加到消息队列,可按先后顺序进行排列,以供客户端从该消息队列中接收待发送日志文件。

可选地,服务端可通过broadcastservice将待发送日志文件添加至消息队列。

可选地,服务端可通过zeromq框架实现与客户端信息的交互,通过在服务端设置一个发布者端口,将满足预设条件的日志文件即待发送日志文件发送到发布者端口。客户端通过broadcastclientservice类接收服务端的发布者端口的消息队列中的待发送日志文件,即订阅的日志文件。

可选地,消息队列具有ackowenledge确认机制,当客户端确认消息队列中的待发送日志文件被处理后,会发送一个确认消息给消息队列,提示消息队列可以删除该待发送日志文件,或将该待发送日志文件返回给服务端进行处理,如持久化。

可选地,客户端可将订阅的日志文件存放到本地的subscribequeue,以供用户消费和验证。

可选地,将待发送日志文件添加至消息队列包括:

将所述待发送日志文件添加至所述待发送日志文件的属性信息对应的消息队列。

消息队列可根据日志文件的属性信息划分成不同主题的消息队列,其中,主题与日志文件的名称以及级别相对应。服务端在获取到待发送日志文件的名称以及级别后,将待发送日志文件添加至与待发送日志文件的名称以及级别一致的消息队列,可满足在多个客户端申请订阅不同名称以及级别的日志文件或客户端申请订阅多个不同名称以及级别的日志文件时,减少错误和混乱。

在实施例中,通过将满足预设名称以及级别的日志文件发送到消息队列,以供客户端订阅需要的日志文件,可有效避免抓取不需要的日志文件,提高抓取日志文件的准确度和效率的有益效果。

参照图3,图3为本发明日志文件的订阅方法第二实施例的流程示意图,基于上述第一实施例,步骤s10之后,还包括:

步骤s21,获取所述框架类型对应的拦截方法;

步骤s22,根据所述拦截方法拦截所述属性信息满足所述预设条件的所述日志文件,并将所述日志文件作为待发送日志文件。

不同的框架类型提供了不同的拦截方法,如logback框架提供了startrecordlogs方法。拦截方法用于实现个性化的定制功能,在本实施例中,用于拦截满足预设条件的日志文件。拦截方法可以是服务端在满足触发拦截方法的条件时,触发拦截方法对应的拦截操作,进而对目标文件或目标操作进行拦截。

拦截方法对应的拦截方式可根据拦截的位置以及时机而不同,包括方法前拦截、方法后拦截以及异位拦截。拦截方法可通过拦截的目标类以及拦截器来实现,其中,拦截器可通过正则表达式来定位业务方法,以及通过名字来定位业务方法。在本实施例中,可通过拦截的目标类或拦截器来实现对待发送日志文件的拦截。

可选地,客户端通过服务端提供的api接入代码,通过控制接入的代码调用框架类型对应的拦截方法拦截服务端录制的日志文件。

服务端通过拦截方法拦截满足预设条件的日志文件,即日志文件的名称与级别满足预设日志文件的名称与级别,并将拦截的日志文件作为待发送文件。服务端可通过拦截方法拦截满足预设名称的日志文件,再拦截这些日志文件中满足预设级别的日志文件,将满足预设级别的日志文件作为待发送文件,其中,预设名称以及级别属于预设条件,即客户端订阅的日志文件的名称以及级别。

在本实施例中,通过调用框架类型对应的拦截方法对日志文件进行拦截,拦截日志文件的属性信息满足预设条件的日志文件,并将满足预设条件的日志文件作为待发送日志文件,可方便快捷地实现订阅预设名称以及级别的日志文件的有益效果。

参照图4,图4为本发明日志文件的订阅方法第三实施例的流程示意图,基于上述第一实施例或第二实施例,步骤s20之后,还包括:

步骤s31,获取所述框架类型对应的增强方法;

步骤s32,根据所述增强方法添加对应的字节码至所述待发送日志文件的代码中,得到增强后的所述待发送日志文件;

步骤s33,将增强后的所述待发送日志文件添加至所述消息队列。

增强方法是指对代码进行修改,添加相应的二进制字节码,以增强代码的功能,减少冗余代码,提高性能。增强方法可以是在代码中写入新的字节数组,可搭配自定义的方法加载修改后的字节码,或者通过自定义方法替换掉原来的字节码。

在本实施例中,不同的框架类型对应不同的增强方法。服务端通过拦截方法获取到待发送日志文件后,通过框架类型对应的增强方法在待发送日志文件的代码的特定位置添加对应的字节码,生成增强后的待发送日志文件。换而言之,服务端通过在待发送日志文件的代码中添加增强字节码,实现增强功能。可以理解的是,可以在待发送日志文件中添加时间信息、重要程度、相关性信息等内容,以便客户端在接收到增强后的待发送日志文件后,方便校验以及进行其他操作。服务端将增强后的待发送日志文件添加至消息队列。

可选地,客户端通过服务端提供的api接入代码,通过控制接入的代码调用框架类型对应的增强方法增强待发送日志文件中的代码。

可选地,将待发送日志文件发送到消息队列之后,还包括:

在检测到所述客户端接收所述待发送日志文件后,所述服务端删除所述待发送日志文件中添加的字节码。

客户端在接收到待发送日志文件后,会反馈一个已处理的确认信息给消息队列。消息队列再返回一个确认信息给服务端,服务端在检测到客户端接收待发送日志文件后,删除增强后的待发送日志文件中添加的字节码,以便将待发送日志文件进行存储的持久化。

在本实施例中,通过在待发送日志文件的代码中添加对应的字节增强码,以便客户端在获取到待发送文件后便于校验或其他操作,使发送的日志文件更符合客户端的订阅需求的有益效果。

此外,本发明实施例还提供一种终端设备,所述终端设备包括处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的日志文件的订阅程序,所述日志文件的订阅程序被所述处理器执行时实现如上所述的日志文件的订阅方法实施例的内容。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有日志文件的订阅程序,所述日志文件的订阅程序被处理器执行时实现如上所述的日志文件的订阅方法实施例的内容。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1