本发明涉及数据处理
技术领域:
:,尤其涉及一种日志的生成方法、装置、计算机设备及存储介质。
背景技术:
::软件接口,例如,应用程序编程接口,是一些预先定义的函数,用于提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。一般来说,在调用软件接口时需要记录接口的调用日志,尤其是对于一些重要的软件接口来说,记录软件接口的调用日志有利于开发人员了解软件接口的执行情况等。目前,实现记录软件接口的调用日志的方式是开发人员为每个软件接口编写日志生成代码,然后在软件接口被调用时,执行日志生成代码以生成软件接口的调用日志。这种实现方法中日志生成代码的复用率往往较低,不利于软件产品的快速开发,同时,由于每个开发人员的编码习惯以及编码风格不同,导致每个日志生成代码的差异性较大,不利于后期维护和扩展。技术实现要素:本发明实施例提供了一种日志的生成方法、装置、计算机设备及存储介质,以简化日志的生成方式,实现对日志的统一管理,提高软件产品的开发效率。本发明实施例提供了一种日志的生成方法,其包括:通过拦截器拦截接口调用请求,其中,所述接口调用请求包括接口标识;通过所述拦截器判断所述接口标识对应的软件接口是否为注解接口,其中,所述注解接口为预先添加预设注解的软件接口,所述预设注解包括数据库标识和日志表标识;若所述接口标识对应的软件接口为注解接口,通过所述拦截器获取所述软件接口的输入参数,并将所述输入参数写入所述日志表标识对应的日志表中,其中,所述日志表存储在所述数据库标识对应的数据库中;以及运行所述软件接口,通过所述拦截器获取所述软件接口的运行结果,并将所述运行结果写入所述日志表标识对应的日志表中以生成日志。本发明实施例还提供了一种日志的生成装置,其包括:拦截单元,用于通过拦截器拦截接口调用请求,其中,所述接口调用请求包括接口标识;接口判断单元,用于通过所述拦截器判断所述接口标识对应的软件接口是否为注解接口,其中,所述注解接口为预先添加预设注解的软件接口,所述预设注解包括数据库标识和日志表标识;所述拦截单元,还用于若所述接口标识对应的软件接口为注解接口,通过所述拦截器获取所述软件接口的输入参数;参数写入单元,用于将所述输入参数写入所述日志表标识对应的日志表中,其中,所述日志表存储在所述数据库标识对应的数据库中;运行单元,用于运行所述软件接口;所述拦截单元,还用于通过所述拦截器获取所述软件接口的运行结果;所述参数写入单元,还用于将所述运行结果写入所述日志表标识对应的日志表中以生成日志。本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述日志的生成方法。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述日志的生成方法。上述的一种日志的生成方法、装置、计算机设备及存储介质,只需要预先在软件接口中添加预设注解,在调用该软件接口时,根据预设注解可以实现将该软件接口的输入参数、运行结果等写入指定的日志表中并入库至指定的数据库中,不但简化了日志的生成方式,也方便对日志进行统一管理。同时,该日志的生成方法还不需要开发人员编写大量的日志生成代码,减小开发人员的工作量,提高产品的开发效率。另外,通过修改预设注解就可以实现修改日志表名、日志所在数据库等信息,操作简单,利于后期的维护和扩展。附图说明为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的日志的生成方法的流程示意图;图2为本发明实施例提供的日志的生成方法的另一流程示意图;图3为本发明实施例提供的日志的生成方法的子流程示意图;图4为本发明另一实施例提供的日志的生成方法的子流程示意图;图5为本发明实施例提供的日志的生成装置的示意性框图;图6为本发明实施例提供的日志的生成装置的另一示意性框图;以及图7为本发明实施例提供的计算机设备的示意性框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。请参阅图1,图1为本发明实施例提供的日志的生成方法的流程示意图。该日志的生成方法可以应用于服务器中。该日志的生成方法包括以下步骤s110-140。s110、通过拦截器拦截接口调用请求,其中,所述接口调用请求包括接口标识。譬如,当需要调用某个软件接口时,用户终端需要向服务器发送接口调用请求。其中,该接口调用请求中包括接口标识。该接口标识为需要被调用的软件接口的标识。该接口标识可例如为软件接口的名称、编号等等,在此不做具体限制。服务器会通过拦截器拦截到该接口调用请求。需要说明的是,本申请中的软件接口可例如为应用程序编程接口(英文全称:applicationprogramminginterface,英文简称:api接口),当然,该软件接口还可以为其他类型的接口,在此不做具体限制。s120、通过所述拦截器判断所述接口标识对应的软件接口是否为注解接口,其中,所述注解接口为预先添加预设注解的软件接口,所述预设注解包括数据库标识和日志表标识。在本实施例中,注解接口为开发人员预先在软件接口对应的代码的预设位置处添加预设注解的软件接口。譬如,该预设位置可以为软件接口的头部,这样软件接口对应的代码中,头部的位置处为预设注解,然后才是软件接口对应的代码正文。以下给出了一种注解接口的形式,如下所示:@annotation(“database_name”=“数据库标识”,“table_name”=“日志表标识”)//在软件接口的头部添加预设注解publicvoid接口标识(输入参数){}//软件接口的正文代码软件接口的正文代码以“publicvoid接口标识(输入参数){}”为开始,在该正文代码的前面,即该软件接口的头部的位置处,添加预设注解“@annotation(database_name=数据库标识,table_name=日志表标识)”。需要说明的是,上述列举的注解接口的形式中,预设注解以及软件接口的正文代码仅仅是起到示范说明的作用,并不能用于限制本申请中预设注解以及软件接口的正文代码的具体内容以及形式,该预设注解和软件接口的正文代码的内容以及形式可以根据实际软件产品的需求进行设置,在此不做具体限制。在一实施例中,服务器中的拦截器和多个软件接口的代码放在一个数据包里。这样,服务器可以通过拦截器判断软件标识对应的软件接口是否为注解接口。具体地,服务器可以通过所述拦截器判断是否能获取到所述接口标识对应的软件接口中的预设注解。譬如,服务器可以通过所述拦截器并基于反射方法判断是否能获取到所述接口标识对应的软件接口的预设注解。若能获取到所述接口标识对应的软件接口中的预设注解,则说明软件接口中有预设注解,此时将判定所述接口标识对应的软件接口为注解接口。相反,若不能获取到所述接口标识对应的软件接口中的预设注解,则说明软件接口中没有预设注解,也说明该软件接口不需要生成日志,此时将判定所述接口标识对应的软件接口不是注解接口。另外,在本实施例中,该预设注解可以包括多个属性,多个属性可以为数据库标识和日志表标识。也就是说,该预设注解包括数据库标识和日志表标识。该日志表标识为后续所生成的软件接口被调用的日志的标识,该数据库标识为软件接口对应的日志所需要写入的数据库的标识。可以理解的是,该预设注解中的数据库标识和日志表标识可以根据实际需求进行设置,以使得该软件接口被调用所生成的日志可以根据需求写入开发人员指定的日志表中且存入指定的数据库中,方便对多个软件接口的日志的统一管理。另外,在其他实施例中,该预设注解中的属性除了包括数据库标识和日志表标识外,还可以包括其他属性。譬如,预设注解还可以包括预设参数处理方法标识、预设异常处理方法标识等等,在此不做具体限制。s130、若所述接口标识对应的软件接口为注解接口,通过所述拦截器获取所述软件接口的输入参数,并将所述输入参数写入所述日志表标识对应的日志表中,其中,所述日志表存储在所述数据库标识对应的数据库中。当判断出该软件标识对应的软件接口为注解接口时,说明该软件接口需要生成日志,此时服务器可以通过拦截器获取软件接口的输入参数。具体地,在一实施例中,服务器可以通过所述拦截器并基于request对象获取所述软件接口的输入参数。在一实施例中,在服务器获取到输入参数后,在数据库标识对应的数据库中找到日志表标识对应的日志表,然后将输入参数写入日志表标识对应的日志表中,以实现将软件接口的日志数据写入指定日志表中并将日志表存入指定的数据库中。需要说明的是,在该实施例中,日志表为预先存储在数据库中的文件。当然,在其他实施例中,该日志表也可以是后来生成的文件。譬如,在判断出接口标识对应的软件接口为注解接口后,服务器根据日志表标识在数据库标识对应的数据库中生成对应的日志表,此时日志表为空白的日志表,然后再将输入参数写入日志表标识对应的日志表中。在一实施例中,预设注解还包括预设参数处理方法标识,该预设参数处理方法标识为预设参数处理方法对应的标识。该预设参数处理方法用于对输入参数进行预设处理。这样,将所述输入参数写入所述日志表标识对应的日志表中,具体包括:根据所述预设参数处理方法标识对应的预设参数处理方法,对所述输入参数进行预设处理;以及,将处理后的输入参数写入所述日志表标识对应的日志表中。譬如,当预设参数处理方法为json序列化方法时,服务器先根据json序列化方法对输入参数进行序列化处理,然后将序列化处理后的输入参数写入日志表标识对应的日志表中。可以理解的是,预设参数处理方法不局限于上述的json序列化方法,还可以为其他方法,开发人员可以根据服务器的日志的数量配置适合服务器的预设参数处理方法,并在预设注解中填写相应的预设参数处理方法对应的预设参数处理方法标识即可。譬如,添加了预设参数处理方法标识的预设注解可以为:@annotation(“database_name”=“数据库标识”,“table_name”=“日志表标识”,“dataprocessingmethod_name”=“json”)。s140、运行所述软件接口,通过所述拦截器获取所述软件接口的运行结果,并将所述运行结果写入所述日志表标识对应的日志表中以生成日志。在将输入参数写入日志表标识对应的日志表中之后,服务器将运行该软件接口以实现软件接口的相应功能。然后当通过拦截器监听到软件接口运行结束时,通过拦截器获取软件接口的运行结果,并将运行结果写入日志表标识对应的日志表中,以完成生成该软件接口被调用的日志。在一实施例中,该通过拦截器获取软件接口的运行结果,具体可以包括:通过拦截器获取软件接口的返回值。也就是说,该运行结果为返回值,将返回值写入指定的日志表中。本实施例中的日志的生成方法,不需要开发人员编写大量的日志生成代码,只需要在需要生成日志的软件接口的预设位置处添加预设注解,即可以在调用该软件接口时实现将输入参数、运行结果等信息写入指定日志表标识对应的日志表中,同时,该日志表还入库至指定的数据库中,简化了日志的生成方式,还可以实现对日志表的统一管理。在一实施例中,如图2所示,图2为本发明实施例提供的日志的生成方法的另一流程示意图。在该实施例中,该预设注解还可以包括预设异常处理方法标识,在所述通过所述拦截器获取所述软件接口的运行结果之前,还包括步骤s150和s160。s150、通过所述拦截器监听所述软件接口的运行状态。在执行完步骤s141之后,即运行所述软件接口之后,服务将在本实施例中,该预设注解的属性还可以包括预设异常处理方法标识,该预设异常处理方法标识对应了一个预设异常处理方法。该预设异常处理方法为当软件接口出现运行异常时对异常情况进行处理的方法。具体地,如图2所示,在执行完步骤s141之后,且在通过拦截器获取软件接口的运行结果之前,需要通过拦截器监听软件接口的运行状态。其中,该运行状态包括正常运行状态和异常运行状态。当监听到所述软件接口处于正常运行状态,那么在所述软件接口运行结束时,执行步骤s142,即通过所述拦截器获取所述软件接口的运行结果,并将所述运行结果写入所述日志表标识对应的日志表中以生成日志。当通过拦截器监听到软件接口处于异常运行状态时,服务器将执行步骤s160。s160、若监听到所述软件接口处于异常运行状态,根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理。具体地,在一实施例中,如图3所示,图3为本发明实施例提供的日志的生成方法的子流程示意图。该步骤s160具体包括以下步骤s161至s163。s161、停止运行所述软件接口。s162、获取所述预设异常处理方法的配置信息。s163、根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常。在图3所示的异常处理过程中,该预设异常处理方法为快速失败方法,该快速失败方法对异常运行状态进行异常处理的逻辑为:首先,当监听到软件接口处于异常运行状态时,停止运行该软件接口。然后,获取预设异常处理方法的配置信息。在一实施例中,该预设注解中除了包括预设异常处理方法标识外,还包括预设异常处理方法的配置信息。譬如,软件接口的预设注解为:@annotation(“database_name”=“数据库标识”,“table_name”=“日志表标识”,“dataprocessingmethod_name”=“预设参数处理方法标识”,{“exceptionhandler”:“fastfail”,“errormag”:“请求失败”,“errcode”:“-1”})。其中,该“exceptionhandler”:“fastfail”表示预设异常处理方法标识为“fastfail”,即为快速失败方法的标识,该“errormag”:“请求失败”表示异常内容为“请求失败”,该“errcode”:“-1”表示异常代码为“-1”。预设异常处理方法的配置信息包括“errormag”:“请求失败”和“errcode”:“-1”。这样,服务器可以从预设注解中获取到预设异常处理方法的配置信息。需要说明的是,服务器获取预设异常处理方法的配置信息的方式不局限于上述方式,还可以为其他方式,在此不做具体限制。最后,服务器再根据配置信息生成异常反馈信息,并将异常反馈信息发送至用户终端,以告知用户请求出现异常。譬如,服务器根据“errormag”:“请求失败”和“errcode”:“-1”生成的异常反馈信息可例如为“请求失败,失败代码为-1”。然后,服务器将“请求失败,失败代码为-1”发送至用户终端以告知用户请求出现异常。需要说明的是,该配置信息的具体内容以及所生成的异常反馈信息不局限于上述的内容,开发人员可以根据实际需求进行自定义设置,在此不做具体限制。当采用图3所示的预设异常处理方法对软件接口的异常运行状态进行异常处理时,可以实现快速地响应软件接口的异常运行状态,使得用户可以尽快得知软件接口调用异常,同时,也可以停止运行异常的软件接口对第三方服务器的访问占用。在另一实施例中,在一实施例中,如图4所示,图4为本发明实施例提供的日志的生成方法的另一子流程示意图。在图4所示的异常处理过程中,该预设异常处理方法为服务降级方法,该服务降级方法对异常运行状态进行异常处理的逻辑如步骤s164至s169所示,即该步骤s160具体包括以下步骤s164至s169。s164、停止运行所述软件接口。当监听到软件接口处于异常运行状态时,停止运行软件接口。s165、获取所述预设异常处理方法的配置信息。在一实施例中,该预设注解中除了包括预设异常处理方法标识外,还包括预设异常处理方法的配置信息。譬如,该软件接口的预设注解为:@annotation(“database_name”=“数据库标识”,“table_name”=“日志表标识”,{“exceptionhandler”:“degradation”,“errormaxnum”:100,“errortime”:1,“lockingtime”:1,“errormag”:“请求失败”,“errcode”:“-1”})。其中,该“exceptionhandler”:“degradation”表示预设异常处理方法标识为“degradation”,即服务降级方法的标识。该预设异常处理方法的配置信息包括:“errormaxnum”:100、“errortime”:1,“lockingtime”:1、“errormag”:“请求失败”和“errcode”:“-1”。该“errormaxnum”:100表示第一预设时间段内异常出现的最大次数为100,即预设次数为100,该“errortime”:1表示第一预设时间段为1秒,该“lockingtime”:1表示第二预设时间段为1秒,该“errormag”:“请求失败”表示异常内容为“请求失败”,该“errcode”:“-1”表示异常代码为“-1”。这样,服务器可以从预设注解中获取到预设异常处理方法的配置信息,然后再从配置信息中获取到用于生成异常反馈信息的配置信息,譬如,获取“errormag”:“请求失败”和“errcode”:“-1”作为用于生成异常反馈信息的配置信息。s166、根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常。服务器根据获取的用于生成异常反馈信息的配置信息生成异常反馈信息,并将异常反馈信息发送至用户终端以告知用户发生异常。其中,该生成的异常反馈信息可例如为“请求失败,失败代码为-1”。s167、判断所述软件接口在第一预设时间段内出现异常的次数是否超过预设次数。譬如,服务器获取配置信息中的第一预设时间段为1秒,预设次数为100,然后服务器判断该软件接口在1秒内出现异常的次数是否超过100次。若所述软件接口在所述第一预设时间段内出现异常的次数超过预设次数,则执行步骤s168;若所述软件接口在所述第一预设时间段内出现异常的次数未超过预设次数,则执行步骤s169。s168、若所述软件接口在所述第一预设时间段内出现异常的次数超过预设次数,在第二预设时间段内锁定所述软件接口,若在所述第二预设时间段内再次接收到调取所述软件接口的接口调用请求,返回所述异常反馈信息。若超过预设次数,则在第二预设时间段内锁定该软件接口。这样在第二预设时间段内再次接收到调取该软件接口的接口调用请求时,直接返回异常反馈信息至用户终端,而不需要去执行调用软件接口的相关操作,直至累计时间超过锁定时间,即超过第二预设时间段后,该软件接口将被解锁,此时,后续的接口调用请求可以继续调用该软件接口。可以理解的是,服务器可以从配置信息中获取上述的第一预设时间段、预设次数以及第二预设时间段等信息。将配置信息写入预设注解内,可以方便后续维护人员对该配置信息进行修改等操作,无需开发人员从大量的代码中寻找对应的配置信息并进行修改,节省修改配置信息的时间。s169、若所述软件接口在所述第一预设时间段内出现异常的次数未超过预设次数,累计所述软件接口在所述第一预设时间段内出现异常的次数。另外,需要说明的是,预设异常处理方法除了上述的快速失败方法和服务降级方法外,还可以为其他的异常处理方法,譬如,预设异常处理方法可以配置为忽略方法,即当软件接口运行异常时,忽略异常,继续运行软件接口。该异常处理方法的具体配置,开发人员可以根据软件接口的重要程度等进行设置,在此不做具体限制。在一实施例中,为了可以使得开发人员或者维护人员可以及时了解软件接口运行异常的情况,在步骤s160之后,还需要将所述软件接口的异常运行状态信息写入所述日志表标识对应的日志表中。这样可以记录软件接口的异常情况。譬如,该异常运行状态信息可以为“异常”。当然,在其他实施例中,异常运行状态信息可以包括预设注解中的“errormag”:“请求失败”和“errcode”:“-1”。只要异常运行状态信息至少可以表示出该软件接口在运行过程中出现异常即可,在此不对异常运行状态信息的具体内容做限制。在本实施例中,该日志的生成方法不但简化了日志的生成方式,还方便对所生成的日志进行统一管理。而且该日志的生成方法还不需要开发人员编写大量的日志生成代码,减小开发人员的工作量,提高产品的开发效率。同时,通过修改预设注解即可以实现修改日志表名、日志所在数据库等信息,操作简单,利于后期的维护和扩展。另外,在某些实施例中,该预设注解中还添加有预设异常处理方法标识,使得当软件接口处于异常运行状态时,可以根据预设异常处理方法标识对应的预设异常处理方法进行异常处理。请参阅图5,图5是本发明实施例提供的一种日志的生成装置的示意性框图。如图5所示,对应于以上日志的生成方法,本发明还提供一种日志的生成装置。该日志的生成装置300包括用于执行上述日志的生成方法的单元,该日志的生成装置300可以被配置于服务器中。具体地,请参阅图5,该日志的生成装置300包括:拦截单元301、接口判断单元302、参数写入单元303和运行单元304。拦截单元301,用于通过拦截器拦截接口调用请求,其中,所述接口调用请求包括接口标识。接口判断单元302,用于通过所述拦截器判断所述接口标识对应的软件接口是否为注解接口,其中,所述注解接口为预先添加预设注解的软件接口,所述预设注解包括数据库标识和日志表标识。具体地,在一实施例中,接口判断单元302可以通过所述拦截器判断是否能获取到所述接口标识对应的软件接口中的预设注解。譬如,接口判断单元302可以通过所述拦截器并基于反射方法判断是否能获取到所述接口标识对应的软件接口的预设注解。所述拦截单元301,还用于若所述接口标识对应的软件接口为注解接口,通过所述拦截器获取所述软件接口的输入参数。具体地,在一实施例中,拦截单元301可以通过所述拦截器并基于request对象获取所述软件接口的输入参数。参数写入单元303,用于将所述输入参数写入所述日志表标识对应的日志表中,其中,所述日志表存储在所述数据库标识对应的数据库中。当拦截单元301获取到输入参数后,参数写入单元303在数据库标识对应的数据库中找到日志表标识对应的日志表,然后将输入参数写入日志表标识对应的日志表中,以实现将软件接口的日志数据写入指定日志表中并将日志表存入指定的数据库中。需要说明的是,在该实施例中,日志表为预先存储在数据库中的文件。当然,在其他实施例中,该日志表也可以是后来生成的文件。譬如,在接口判断单元302判断出接口标识对应的软件接口为注解接口后,参数写入单元303根据日志表标识在数据库标识对应的数据库中生成对应的日志表,此时日志表为空白的日志表,然后再将输入参数写入日志表标识对应的日志表中。在一实施例中,预设注解还包括预设参数处理方法标识,参数写入单元303具体用于根据所述预设参数处理方法标识对应的预设参数处理方法,对所述输入参数进行预设处理;以及将处理后的输入参数写入所述日志表标识对应的日志表中。运行单元304,用于运行所述软件接口。所述拦截单元301,还用于通过所述拦截器获取所述软件接口的运行结果。当软件接口运行结束后,通过拦截器获取软件接口的运行结果。具体地,拦截单元301用于通过拦截器获取软件接口的返回值。所述参数写入单元303,还用于将所述运行结果写入所述日志表标识对应的日志表中以生成日志。在一实施例中,如图6所示,图6为本发明实施例提供的日志的生成装置的另一示意性框图。在该实施例中,该预设注解还可以包括预设异常处理方法标识,该日志的生成装置300还包括监听单元305和异常处理单元306。监听单元305,用于通过所述拦截器监听所述软件接口的运行状态。在拦截单元301通过所述拦截器获取所述软件接口的运行结果之前,监听单元305需要通过拦截器监听所述软件接口的运行状态。其中,该运行状态包括正常运行状态和异常运行状态。当监听单元305监听到软件接口处于正常运行状态,那么在所述软件接口运行结束时,拦截单元301通过所述拦截器获取所述软件接口的运行结果。当监听单元305监听到软件接口处于异常运行状态时,异常处理单元306将执行相应的操作。异常处理单元306,用于若监听到所述软件接口处于异常运行状态,根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理。具体地,在一实施例中,该异常处理单元306具体用于:停止运行所述软件接口;获取所述预设异常处理方法的配置信息;以及根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常。具体地,在另一实施例中,该异常处理单元306具体用于:停止运行所述软件接口;获取所述预设异常处理方法的配置信息;根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常;判断所述软件接口在第一预设时间段内出现异常的次数是否超过预设次数;以及若所述软件接口在所述第一预设时间段内出现异常的次数超过预设次数,在第二预设时间段内锁定所述软件接口,若在所述第二预设时间段内再次接收到调取所述软件接口的接口调用请求,返回所述异常反馈信息。在一实施例中,如图6所示,为了可以使得开发人员或者维护人员可以及时了解软件接口运行异常的情况,在异常处理单元306进行异常处理之后,参数写入单元303还用于将所述软件接口的异常运行状态信息写入所述日志表标识对应的日志表中。需要说明的是,所属领域的技术人员可以清楚地了解到,上述日志的生成装置300和各单元的具体实现过程,可以参考前述日志的生成方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。在本实施例中,该日志的生成装置300可以简化日志的生成方式,方便对所生成的日志进行统一管理。同时,该日志的生成装置300还不需要开发人员编写大量的日志生成代码,减小开发人员的工作量,提高产品的开发效率。另外,通过修改预设注解即可以实现修改日志表名、日志所在数据库等信息,操作简单,利于后期的维护和扩展。上述日志的生成装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。请参阅图7,图7是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。参阅图7,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种日志的生成方法。该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种日志的生成方法。该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:通过拦截器拦截接口调用请求,其中,所述接口调用请求包括接口标识;通过所述拦截器判断所述接口标识对应的软件接口是否为注解接口,其中,所述注解接口为预先添加预设注解的软件接口,所述预设注解包括数据库标识和日志表标识;若所述接口标识对应的软件接口为注解接口,通过所述拦截器获取所述软件接口的输入参数,并将所述输入参数写入所述日志表标识对应的日志表中,其中,所述日志表存储在所述数据库标识对应的数据库中;以及运行所述软件接口,通过所述拦截器获取所述软件接口的运行结果,并将所述运行结果写入所述日志表标识对应的日志表中以生成日志。在一实施例中,所述预设注解还包括预设参数处理方法标识,处理器502在实现将所述输入参数写入所述日志表标识对应的日志表中步骤时,具体实现如下步骤:根据所述预设参数处理方法标识对应的预设参数处理方法,对所述输入参数进行预设处理;以及,将处理后的输入参数写入所述日志表标识对应的日志表中。在一实施例中,所述预设注解还包括预设异常处理方法标识,处理器502在实现所述通过所述拦截器获取所述软件接口的运行结果步骤之前,还实现如下步骤:通过所述拦截器监听所述软件接口的运行状态;若监听到所述软件接口处于异常运行状态,根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理。进一步地,处理器502在实现所述根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理步骤时,具体实现如下步骤:停止运行所述软件接口;获取所述预设异常处理方法的配置信息;以及根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常。进一步地,处理器502在实现所述根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理步骤时,具体实现如下步骤:停止运行所述软件接口;获取所述预设异常处理方法的配置信息;根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常;判断所述软件接口在第一预设时间段内出现异常的次数是否超过预设次数;以及若所述软件接口在所述第一预设时间段内出现异常的次数超过预设次数,在第二预设时间段内锁定所述软件接口,若在所述第二预设时间段内再次接收到调取所述软件接口的接口调用请求,返回所述异常反馈信息。在一实施例中,处理器502在实现通过所述拦截器监听所述软件接口的运行状态步骤之后,还实现如下步骤:若监听到所述软件接口处于正常运行状态,在所述软件接口运行结束时,执行通过所述拦截器获取所述软件接口的运行结果的步骤。在一实施例中,处理器502在实现根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理步骤之后,还实现如下步骤:将所述软件接口的异常运行状态信息写入所述日志表标识对应的日志表中。应当理解,在本申请实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述日志的生成方法的实施例的流程步骤。因此,本发明还提供一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序。该计算机程序被处理器执行时使处理器执行如下步骤:通过拦截器拦截接口调用请求,其中,所述接口调用请求包括接口标识;通过所述拦截器判断所述接口标识对应的软件接口是否为注解接口,其中,所述注解接口为预先添加预设注解的软件接口,所述预设注解包括数据库标识和日志表标识;若所述接口标识对应的软件接口为注解接口,通过所述拦截器获取所述软件接口的输入参数,并将所述输入参数写入所述日志表标识对应的日志表中,其中,所述日志表存储在所述数据库标识对应的数据库中;以及运行所述软件接口,通过所述拦截器获取所述软件接口的运行结果,并将所述运行结果写入所述日志表标识对应的日志表中以生成日志。在一实施例中,所述预设注解还包括预设参数处理方法标识,所述处理器在执行所述计算机程序而实现所述将所述输入参数写入所述日志表标识对应的日志表中步骤时,具体实现如下步骤:根据所述预设参数处理方法标识对应的预设参数处理方法,对所述输入参数进行预设处理;以及将处理后的输入参数写入所述日志表标识对应的日志表中。在一实施例中,所述预设注解还包括预设异常处理方法标识,所述处理器在执行所述计算机程序而实现所述通过所述拦截器获取所述软件接口的运行结果步骤之前,还实现如下步骤:通过所述拦截器监听所述软件接口的运行状态;若监听到所述软件接口处于异常运行状态,根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理。进一步地,所述处理器在执行所述计算机程序而实现所述根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理步骤时,具体实现如下步骤:停止运行所述软件接口;获取所述预设异常处理方法的配置信息;以及根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常。进一步地,所述处理器在执行所述计算机程序而实现所述根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理步骤时,具体实现如下步骤:停止运行所述软件接口;获取所述预设异常处理方法的配置信息;根据所述配置信息生成异常反馈信息,并发送所述异常反馈信息至用户终端以告知用户请求出现异常;判断所述软件接口在第一预设时间段内出现异常的次数是否超过预设次数;以及若所述软件接口在所述第一预设时间段内出现异常的次数超过预设次数,在第二预设时间段内锁定所述软件接口,若在所述第二预设时间段内再次接收到调取所述软件接口的接口调用请求,返回所述异常反馈信息。在一实施例中,所述处理器在执行所述计算机程序而实现所述通过所述拦截器监听所述软件接口的运行状态步骤之后,还实现如下步骤:若监听到所述软件接口处于正常运行状态,在所述软件接口运行结束时,执行通过所述拦截器获取所述软件接口的运行结果的步骤。在一实施例中,所述处理器在执行所述计算机程序而实现所述根据所述预设异常处理方法标识对应的预设异常处理方法对所述软件接口的异常运行状态进行异常处理步骤之后,还实现如下步骤:将所述软件接口的异常运行状态信息写入所述日志表标识对应的日志表中。所述存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域:
:的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12