一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

日志处理方法、装置、服务器及存储介质与流程

2022-08-13 15:39:07 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种日志处理方法、装置、服务器及存储介质。


背景技术:

2.日志记录是程序调试和问题定位的重要途径。例如,在通过接口调用服务出现错误时,服务调用的日志记录对于问题的排查是至关重要的。
3.相关技术中,在生成日志记录时,通常只能生成调用服务的日志详情。这种方法生成的日志记录,内容比较单一。
4.因此,设计一种新的日志生成方法,成为亟待解决的技术问题。


技术实现要素:

5.本公开提供一种日志处理方法、装置、服务器及存储介质,以至少解决相关技术中日志记录的内容单一的问题。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种日志处理方法,用于服务器,方法包括:接收接口请求,生成接口请求的请求标识,接口请求包括接口请求参数,接口请求参数用于表征接口请求的调用方信息以及接口请求所请求的接口信息;调用预先封装的日志打印工具,日志打印工具用于指示使用请求标识、接口请求参数和接口调用参数打印日志数据;接口调用参数用于表征执行接口请求时所使用的参数;基于日志打印工具,打印接口请求的日志数据。
7.在一种可能的实施方式中,调用预先封装的日志打印工具,包括:在目标参数属于预设打印参数集合的情况下,调用预先封装的日志打印工具;目标参数包括接口请求参数和/或接口调用参数。
8.另一种可能的实施方式中,基于日志打印工具,打印接口请求的日志数据,包括:在确定服务器配置有自定义日志参数的情况下,日志打印工具基于请求标识、接口请求参数、接口调用参数和自定义日志参数,打印接口请求的日志数据;在确定服务器未配置自定义日志参数的情况下,日志打印工具基于请求标识、接口请求参数、接口调用参数和日志打印工具预先配置的默认日志参数,打印接口请求的日志数据。
9.另一种可能的实施方式中,基于日志打印工具,打印接口请求的日志数据,包括:获取执行接口请求的当前链路节点;在当前链路节点属于预设打印链路节点集合的情况下,日志打印工具基于请求标识、接口请求参数和接口调用参数,打印接口请求的当前链路节点的日志数据。
10.另一种可能的实施方式中,在基于日志打印工具,打印接口请求的日志数据之后,该方法还包括:向调用方返回接口请求的请求结果信息,请求结果信息包括请求标识以及接口调用参数。
11.另一种可能的实施方式中,日志数据包括日志索引和日志详情,基于日志打印工
具,打印接口请求的日志数据之后,该方法还包括:将日志索引存储在第一数据库;第一数据库存储日志索引的时长为第一预设时长;将日志详情存储在第二数据库;第二数据库存储日志详情的时长为第一预设时长。
12.另一种可能的实施方式中,基于日志打印工具,打印接口请求的日志数据之后,该方法还包括:将日志数据存储在第三数据库,第三数据库存储日志数据的时长为第二预设时长,第二预设时长大于第一预设时长。
13.另一种可能的实施方式中,将日志详情存储在第二数据库,包括:在第二数据库中不包括请求标识的情况下,将日志详情插入第二数据库;在第二数据库中包括请求标识的情况下,将日志详情存储在第二数据库中请求标识所在的行。
14.另一种可能的实施方式中,该方法还包括:接收调用方发送的第一查询请求,第一查询请求包括查询语句;查询语句包括请求标识、接口请求参数和接口调用参数中的至少一项;从第一数据库中查询查询语句对应的目标日志索引,并基于第一查询请求,向调用方返回目标日志索引;接收调用方发送的第二查询请求,第二查询请求包括目标日志索引所属接口请求的目标请求标识;第二数据库中查询目标请求标识对应的目标日志详情,并基于第二查询请求,向调用方返回目标日志详情。
15.根据本公开实施例的第二方面,提供一种日志处理装置,包括:接收模块,被配置为执行接收接口请求,生成接口请求的请求标识;接口请求包括接口请求参数;接口请求参数用于表征接口请求的调用方信息以及接口请求所请求的接口信息;调用模块,被配置为执行调用预先封装的日志打印工具,日志打印工具用于指示使用请求标识、接口请求参数和接口调用参数打印日志数据;接口调用参数用于表征执行接口请求时所使用的参数;日志模块,被配置为执行基于日志打印工具,打印接口请求的日志数据。
16.在一种可能的实施方式中,日志模块被配置为执行:在目标参数属于预设打印参数集合的情况下,调用预先封装的日志打印工具;目标参数包括接口请求参数和/或接口调用参数。
17.另一种可能的实施方式中,日志模块被配置为执行:在确定服务器配置有自定义日志参数的情况下,日志打印工具基于请求标识、接口请求参数、接口调用参数和自定义日志参数,打印接口请求的日志数据;在确定服务器未配置自定义日志参数的情况下,日志打印工具基于请求标识、接口请求参数、接口调用参数和日志打印工具预先配置的默认日志参数,打印接口请求的日志数据。
18.另一种可能的实施方式中,日志模块被配置为执行:获取执行接口请求的当前链路节点;在当前链路节点属于预设打印链路节点集合的情况下,日志打印工具基于请求标识、接口请求参数和接口调用参数,打印接口请求的当前链路节点的日志数据。
19.另一种可能的实施方式中,该装置还包括发送模块,被配置为执行:在基于日志打印工具打印接口请求的日志数据之后,向调用方返回接口请求的请求结果信息,请求结果信息包括请求标识和接口调用参数。
20.另一种可能的实施方式中,日志数据包括日志索引和日志详情,该装置还包括存储模块,被配置为执行:将日志索引存储在第一数据库;第一数据库存储日志索引的时长为第一预设时长;将日志详情存储至第二数据库;第二数据库存储日志详情的时长为第一预设时长。
21.另一种可能的实施方式中,存储模块还被配置为执行:将日志数据存储在第三数据库,第三数据库存储日志数据的时长为第二预设时长,第二预设时长大于第一预设时长。
22.另一种可能的实施方式中,存储模块还被配置为执行:在第二数据库中不包括请求标识的情况下,将日志详情插入第二数据库;在第二数据库中包括请求标识的情况下,将日志详情存储至第二数据库中请求标识所在的行。
23.另一种可能的实施方式中,该装置还包括查询模块,被配置为执行:接收调用方发送的第一查询请求,第一查询请求包括查询语句;查询语句包括请求标识、接口请求参数和接口调用参数中的至少一项;从第一数据库中查询查询语句对应的目标日志索引,并基于第一查询请求,向调用方返回目标日志索引;接收调用方发送的第二查询请求,第二查询请求包括目标日志索引所属接口请求的目标请求标识;从第二数据库中查询目标请求标识对应的目标日志详情,并基于第二查询请求,向调用方返回目标日志详情。
24.根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面及其任一种可能的实施方式的方法。
25.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述第一方面中及其任一种可能的实施方式的方法。
26.根据本公开实施例的第五方面,提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令在服务器上运行时,使得服务器执行上述第一方面及其任一种可能的实施方式的信息处理方法。
27.本公开的实施例提供的技术方案至少带来以下有益效果:在接收到接口请求后,生成接口请求的请求标识,从而实现将接口请求的链路节点上的日志串联起来。进一步地,通过封装日志打印工具,并调用日志打印工具生成链路日志,实现在生成链路日志时带上请求标识、对象标识、所述调用方标识等通用信息,从而实现扩展链路日志的功能,扩大日志查询维度,使得用户可以通过请求标识、对象标识、所述调用方标识等信息进行日志查询,提高日志查询的便利性和准确性。此外,通过在日志中带上链路节点的耗时信息,有助于用户更全面了解接口请求的执行情况。
28.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
29.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
30.图1是根据一示例性实施例示出的一种实施环境的架构图;
31.图2是根据一示例性实施例示出的一种日志处理方法的流程图;
32.图3是根据一示例性实施例示出的一种日志处理方法的框架图;
33.图4是根据一示例性实施例示出的一种日志处理方法的架构图;
34.图5是根据一示例性实施例示出的另一种日志处理方法的流程图;
35.图6是根据一示例性实施例示出的另一种日志处理方法的流程图;
36.图7是根据一示例性实施例示出的另一种日志处理方法的架构图;
37.图8是根据一示例性实施例示出的另一种日志处理方法的流程图;
38.图9是根据一示例性实施例示出的另一种日志处理方法的框架图;
39.图10是根据一示例性实施例示出的一种日志处理装置的框图;
40.图11是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
41.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
42.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
43.在对本公开提供的信息处理方法进行详细介绍之前,先对本公开涉及的应用场景、实施环境和相关要素进行简单介绍。
44.首先,为了便于理解本技术,现对本技术涉及到的相关要素进行描述。
45.独立软件开发商(independent software vendors,isv):特指专门从事软件的开发、生产、销售和服务的企业,如微软(microsoft)、甲骨文(oracle)等。
46.在一种实施方式中,isv指在开放场景下调用客户端服务的一方,在对接开放平台时需要入驻成为isv。当前支持第三方开发者和商家开发者两种类型,第三方开发者的客户端会上架到服务市场进行售卖,商家开发者的客户端仅为自己使用。
47.网关(gateway):又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。具体地,网关对收到的信息要重新打包,以适应目的系统的需求。
48.全链路:针对请求方发送的请求,一般需要通过多个节点执行多个服务的调用。由请求方开始直至多个节点之间所构成的调用链路则可称之为全链路。
49.全链路日志(full link log):一个请求的整个链路上的日志。
50.应用程序接口(application programming interface,api):是一些预先定义的接口(如函数、http接口),或指软件系统不同组成部分衔接的约定。在一种实施方式中,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
51.通用唯一识别码(universally unique identifier,uuid):是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的uuid。在这样的情况下,就不需考虑数据库创建
时的名称重复问题。
52.hive:是基于hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。
53.ims(ip multimedia subsystem)是ip多媒体系统,是一种全新的多媒体业务形式,它能够满足的终端客户更新颖、更多样化多媒体业务的需求。
54.统一资源标识符(uniform resource identifier,uri):ims网络中ims用户的“名字”,也就是ims用户的身份标识。
55.其次,对本公开涉及的应用场景进行简单介绍。
56.日志记录是程序调试和问题定位的重要途径。例如,在通过接口调用服务出现错误时,服务调用的日志记录对于问题定位是至关重要的。相关技术中,一个服务调用请求通常涉及多个服务的调用,在生成服务调用的日志记录时,通常是由每个服务的系统各自收集日志记录,然后,将每个服务的日志分别存储。这种日志生成方式,导致接口调用服务出现错误时,需要分别对每个服务进行日志查询,日志查询的时间成本和难度都非常高。
57.针对上述问题,本公开提供了一种日志处理方法,在接收到接口请求后,生成接口请求的请求标识,从而实现将接口请求的链路节点上的日志串联起来。进一步地,通过封装日志打印工具,并调用日志打印工具生成链路日志,实现在生成链路日志时带上请求标识、对象标识、所述调用方标识等通用信息,从而实现扩展链路日志的功能,扩大日志查询维度,使得用户可以通过请求标识、对象标识、所述调用方标识等信息进行日志查询,提高日志查询的便利性和准确性。此外,通过在日志中带上链路节点的耗时信息,有助于用户更全面了解接口请求的执行情况。
58.再次,下面对本公开涉及的实施环境(实施架构)进行简单介绍。
59.下面对本公开涉及的实施环境(实施架构)进行简单介绍,如图1所示,其示出了本公开适用的一种实施环境的示意图。该实施环境中可以包括服务器110和电子设备120,该电子设备120可通过网络(有线网络或无线网络)与该服务器110之间建立连接。
60.其中,该电子设备120为接口调用方使用的设备。接口的调用方(外部用户)使用电子设备120完成发送接口请求以及日志查询请求。该电子设备120可以为手机、平板电脑、笔记本电脑、掌上电脑、台式计算机、便携式计算机、车载终端以及可穿戴设备等,本公开对此不做限定。
61.其中,该服务器110用于处理接口请求以及日志查询请求。在一些实施例中,该服务器110可以为一台服务器,或者,也可以为由多台服务器组成的服务器集群,本公开对此不做限定。
62.在一种实施方式中,服务器110为api网关服务器,api网关服务器包括网关管理域、网关运行域以及日志中心。其中,网关管理域、网关运行域以及日志中心可以是独立服务器,或者,也可以是一个服务器中的不同模块。
63.为了便于理解,以下结合附图对本公开提供的日志处理方法进行具体介绍。
64.图2是根据一示例性实施例示出的一种日志处理方法的流程图,用于服务器110。如图2所示,日志处理方法包括以下步骤:
65.s201:接收接口请求,生成接口请求的请求标识。
66.其中,接口请求包括接口请求参数,接口请求参数用于表征接口请求的调用方信
息以及接口请求所请求的接口信息。
67.在一种实施方式中,接口请求参数包括对象标识(userid)、调用方标识(appkey)、接口路径标识(uri)中的一项或多项。其中,对象标识用于指示发送接口请求的对象的标识。示例性的,对象标识包括主对象标识primaryuserid和从对象标识userid。需要说明的,一个对象标识可以对应多个从对象标识,一个从对象标识仅对应一个主对象标。
68.在一种实施方式中,接口请求包括api请求。例如,api请求可以是api网关服务器的外部用户用于请求api的请求。其中,外部用户(isv)通过第一电子设备发送接口请求。或者,api请求可以是api网关服务器的内部用户或业务方用于请求api的请求。其中,内部用户或业务方可以通过第二电子设备发送接口请求。
69.在一种实施方式中,api网关服务器的网关运行域接收接口请求,并生成全局唯一的请求标识。示例性,服务器可以基于uuid生成接口请求的请求标识。通过基于uuid生成接口请求的请求标识,有助于避免在高并发场景发生请求标识重复的问题。
70.在一种实施方式中,请求标识用于串联接口请求的各个链路节点的日志数据。其中,链路节点包括接口入参节点、接口出参节点、鉴权入参节点、鉴权出参节点、服务入参节点、服务出参节点和异常节点等中的至少一项。
71.在一种实施方式中,请求标识可以是requestid,也称为sessionid或transactionid。具体地,可以通过把x-request-id(x-session-id)标记在接口请求头中,在整个链路节点进行传递,从而通过requestid将接口请求的不同链路节点的日志串联起来。
72.需要说明的,不同的接口请求具有不同的请求标识。一个接口请求的不同链路节点具有相同的请求标识。
73.s202:调用预先封装的日志打印工具,日志打印工具用于指示使用请求标识、接口请求参数和接口调用参数打印日志数据。
74.其中,接口调用参数用于表征执行接口请求时所使用的参数。
75.在一种实施方式中,接口调用参数包括接口请求的耗时信息、错误码、错误描述、日志类型标识、接口请求的请求时间信息等中的一项或多项。
76.可选地,在s201之前,日志处理方法还包括:封装日志打印工具,该日志打印工具用于指示打印接口请求的日志数据时需要携带的参数,也即,在打印接口请求的日志数据是,同时需要打印日志打印工具指示的需要携带的参数。
77.在一种实施方式中,日志打印工具包括请求标识、接口请求参数和接口调用参数等中的一项或多项。因此,在调用日志打印工具打印接口请求的日志数据时,需要同时打印请求标识、接口请求参数和接口调用参数等中一项或多项。通过封装日志打印工具,并在打印接口请求的日志数据时,调用该日志打印工具,从而实现将日志打印工具中的参数打印在日志数据中,一方面,丰富了日志数据的内容,另一方面,还有助于提高查询便利性。
78.在一个示例中,在网关运行域初始化时,从网关管理域获取预先封装的日志打印工具。
79.在一种实施方式中,如图3所示,内部用户和/或外部用户向网关运行域发送接口请求,例如,api请求,网关运行域在接收到接口请求后,生成全局唯一的请求标识,并调用预先封装的日志打印工具,以打印接口请求的日志数据。
80.s203:基于日志打印工具,打印接口请求的日志数据。
81.在一种实施方式中,在调用预先封装的日志打印工具后,基于日志打印工具指示的参数,获取该参数对应的内容,并在打印接口请求的日志数据时,打印该参数以及该参数对应的内容。例如,日志打印工具指示的参数包括请求标识、接口请求参数和接口调用参数,此时,服务器基于请求标识、接口请求参数和接口调用参数,打印接口请求的日志数据。
82.在一种实施方式中,日志数据包括日志索引和日志详情。服务器基于请求标识、接口请求参数和接口调用参数及其分别对应的内容打印日志索引,也即,日志索引中包括请求标识、接口调用参数和接口请求参数及其分别对应的内容。
83.需要说明的是,参数对应的内容,可以是参数对应的值,例如,接口请求的耗时信息对应的内容是时长。
84.在一种实施方式,如图3所示,网关运行域打印接口请求的日志数据后,将日志数据发送给日志中心,以便日志中心通过消费日志数据,实现日志数据的存储。在另一种实施方式中,网关运行域打印接口请求的日志数据后,将日志数据发送给kafka消息中,通过消费kafka消息,实现日志数据的存储。
85.在一种实施方式中,封装的日志打印工具中包括多个打印参数,例如,对象标识、所述调用方标识、接口路径标识、请求标识、接口请求的耗时信息、错误码、错误描述、日志类型、打印所述日志数据的时间等,服务器调用封装的日志打印工具,获取每个打印参数对应的内容,并进行日志数据的打印。
86.可选地,在s203之后,日志处理方法还包括:向调用方返回接口请求的请求结果信息,请求结果信息包括接口调用参数和请求标识。
87.上述实施例中,由于打印接口请求的日志数据时,同时打印了接口调用参数和请求标识,也即,日志数据中包括接口调用参数和请求标识,通过向服务调用方发送携带接口调用参数的请求结果信息,使得用户可以基于接口调用参数和请求标识查询日志数据,从而提高日志查询的便利性和准确性。
88.上述实施例中,在接收到接口请求后,生成接口请求的请求标识,并在接口请求的日志数据时打印请求标识,从而实现将接口请求的各个链路节点上的日志数据串联起来,进而能够实现通过请求标识查询接口请求的全链路节点的日志数据。进一步地,通过调用预先封装的日志打印工具,打印接口请求的日志数据,有助于实现扩展日志数据的打印参数,例如,打印请求标识、接口请求参数和接调用参数等参数,一方面,丰富了日志数据的内容,有助于提高日志数据的问题定位能力。另一方面,扩大了日志数据的查询维度,使得用户可以通过请求标识、接口请求参数和接调用参数等参数进行日志查询,提高日志查询的便利性和准确性。此外,还能够提高数据安全性、提高代码复用能力、不必关心具体的实现,以及快速、准确的调用打印参数。此外,通过设置接口调用参数中包括耗时信息,有助于更全面了解接口请求的执行情况,进而优化接口请求的执行流程。
89.可选地,s202包括:在目标参数属于预设打印参数集合的情况下,调用预先封装的日志打印工具。
90.其中,目标参数包括接口请求参数和/或接口调用参数,
91.在一种实施方式中,预设打印参数集合还可以包括请求标识、接口请求所属集群群的标识和调用方的设备标识中的一项或多项。
92.在一种实施方式中,预设打印参数集合包括预设打印参数的标识段。其中,不同参数的标识段可以不同。例如,调用方设备的标识段为100-200,在调用方设备的标识为150时,则调用方设备的标识属于该调用方设备的标识段,在调用方设备标识为210时,则调用方设备的标识不属于该调用方设备的标识段。另外,在预设打印参数集合包括多个预设打印参数的标识段的情况下,在接口请求的每个目标参数的标识均属于对应预设打印参数的标识段的情况下,才打印该接口请求的日志数据。
93.在一种实施方式中,在接口请求的目标参数属于预设打印参数集合的情况下,则调用预先封装的日志打印工具,并打印接口请求的日志数据。在接口请求的目标参数不属于预设日志打印白名单的情况下,则仅执行该接口请求的任务,不调用预先封装的日志打印工具且不打印该接口请求的日志数据。
94.在一种实施方式中,服务器初始化时,获取预设打印参数集合并进行存储。
95.在一个示例中,服务器获取api网关的提供者或业务方输入的预设打印参数集合。
96.在另一个示例中,如图3所示,api网关的提供者或业务方在网关配置域上设置预设打印参数集合,网关运行域初始化时,通过kbus/task从网关配置域读取预设打印参数集合。进一步地,在api网关的提供者或业务方更新预设打印参数集合的情况下,kbus/task重新从网关配置域读取更新后的预设打印参数集合,并使用更新后的预设打印参数集合替换更新前的预设打印参数集合。
97.需要说明的,在api网关服务器运行前,api网关的提供者或业务方会对api网关服务器进行api网关配置。其中,对api网关进行配置可以在网关管理域上进行。
98.在一种实施方式中,api网关配置包括api配置。例如,api配置的内容如表1所示。
99.表1
100.[0101][0102]
在一种实施方式中,api网关配置包括参数配置。例如,参数配置的内容如表2所示。
[0103]
表2
[0104][0105]
上述实施例中,通过设置在接口请求的目标参数属于预设打印参数集合的情况下,调用预先封装日志打印工具,从而实现对打印日志数据的接口请求进行多维度筛选,而
不是打印所有接口请求的日志,有助于降低日志数据的打印工作量。
[0106]
可选地,s203包括:
[0107]
步骤一:在确定服务器配置有自定义日志参数的情况下,日志打印工具基于请求标识、接口请求参数、接口调用参数和自定义日志参数,打印接口请求的日志数据。
[0108]
在一种实施方式中,服务器初始化时,获取自定义日志参数并进行存储。
[0109]
在一个示例中,服务器获取业务方或api网关的提供者输入的自定义日志参数。在另一个示例,业务方或api网关的提供者在网关配置域上设置自定义日志参数,网关运行域初始化时,通过kbus/task从网关配置域读取自定义日志参数。进一步地,在业务方更新自定义日志参数的情况下,kbus/task重新从网关配置域读取更新后的自定义日志参数。
[0110]
在一种实施方式中,以订单的api网关服务器为了进行说明,接口入参为订单标识(oid),接口出参包括订单基本信息(orderbaseinfo)、订单商品信息(orderiteminfo)、订单退款列表(orderrefundlist)、订单物流信息(orderlogisticsinfo)、订单备注(ordernote)、订单地址(orderaddress)、订单标志(orderflag)等结构信息。其中,最核心的字段是orderbaseinfo,包括:订单支付时间、订单支付金额、订单状态等。所以,将接口入参的oid和接口出参的orderbaseinfo配置为自定义日志参数。
[0111]
需要说明的,在设置自定义日志参数时,通常将核心且非敏感字段设置为自定义日志参数,例如,订单支付时间、订单支付金额、订单状态等。
[0112]
在一种实施方式中,在接口(api)配置有自定义日志参数的情况下,则打印自定义日志参数以及自定义日志参数对应的内容,得到日志数据。其中,自定义日志参数对应的内容从接口请求中获取。此外,还会打印接口请求参数及其对应的内容、接口调用参数及其对应的内容以及请求标识。
[0113]
步骤二:在确定服务器未配置自定义日志参数的情况下,述日志打印工具基于请求标识、接口请求参数、接口调用参数和日志打印工具预先配置的默认日志参数,打印接口请求的日志数据。
[0114]
在一种实施方式中,在接口(api)未配置自定义日志参数的情况下,则打印日志打印工具预先配置的默认日志参数以及默认日志参数对应的内容,得到日志数据。例如,默认日志参数包括错误码(result)、错误描述(errmsg)等。此外,还会打印接口请求参数及其对应的内容、接口调用参数及其对应的内容以及请求标识。
[0115]
上述实施例中,通过设置在服务器配置有自定义日志参数的情况下,基于自定义日志参数,打印日志数据,实现根据实际需求打印日志数据的内容,有助于提高日志数据的有效性,以及降低日志数据打印的工作量。
[0116]
可选地,上述s203包括:获取执行接口请求的当前链路节点,在当前链路节点属于预设打印链路节点集合的情况下,日志打印工具基于请求标识、接口请求参数和接口调用参数,打印接口请求的当前链路节点的日志数据。
[0117]
在一种实施方式中,预设打印链路节点集合包括:接口入参(即api入参)、接口出参(即api出参)、鉴权入参、鉴权出参、服务入参、服务出参、异常中的至少一项。通过设置预设打印链路节点集合包括api入参、api出参、鉴权入参、鉴权出参、服务入参、服务出参、异常,从而实现在网关服务器处打印接口请求的全链路日志,也即,不仅可以打印网关侧节点的日志数据,还可以打印业务方侧的日志数据,使得调用方可以在网关服务器查询接口请
求的全链路日志,进而提高了日志查询的便利性,解决了相关技术中一个接口请求需要业务方和网关服务器分别打印日志数据的问题。
[0118]
需要说明的,在一种实施方式中,服务入参和服务出参是指业务方提供的服务。异常是指接口请求的任务执行结果为异常的节点。
[0119]
在一种实施方式中,服务器初始化时,获取打印日志的预设打印链路节点集合。接口请求在当前链路节点上的任务执行完成后,服务器判断当前链路节点是否属于预设打印链路节点结合,在属于的情况下,则基于接口请参数、接口调用参数和请求标识,打印该当前链路节点的日志数据。
[0120]
在一个示例中,服务器获取业务方或api网关提供者输入的打印日志的预设打印链路节点集合。在另一个示例中,业务方或api网关提供者在网关配置域上设置打印日志的预设打印链路节点集合,网关运行域初始化时,通过kbus/task从网关配置域读取打印日志的预设打印链路节点集合。进一步地,在打印日志的预设打印链路节点集合的更新情况下,kbus/task重新从网关配置域读取更新后的打印日志的预设打印链路节点集合。
[0121]
在一种实施方式中,如图4所示,网关运行域通过kbus/task从网关管理域同步api配置、参数配置、自定义日志参数配置等数据,服务调用方(例如isv、内部用户以及业务方),向网关运行域发送接口请求,网关运行域在接收到接口请求后,生成请求标识,并调用预先封装的日志打印工具,打印属于预设打印链路节点集合的链路节点上日志数据。
[0122]
上述实施例中,通过打印接口请求的属于预设打印链路节点集合的链路节点上的日志数据,一方面,实现对打印日志数据的链路节点进行筛选,从而仅生成关键链路节点的日志数据,进而有助于降低日志数据的打印工作量。
[0123]
在一个具体实施方式中,如图5所示,日志处理方法包括:
[0124]
s501:接收api请请求。
[0125]
在一种实施方式中,网关运行域接收api请求。
[0126]
s502:生成请求标识。
[0127]
在一种实施方式中,网关运行域在接收到api请求后,生成全局唯一的请求标识。
[0128]
s503:判断目标参数是否属于预设打印参数集合。
[0129]
在目标参数不属于预设打印参数集合的情况下,执行s504。在目标参数属于预设打印参数集合的情况下,执行s505。
[0130]
s504:正常处理接口请求直至结束,
[0131]
在一种实施方式中,如果目标参数不属于预设的白名单,则不打印该接口请求的日志数据,仅处理接口请求的任务,直至结束。
[0132]
s505:判断服务器是否配置了自定义日志参数。
[0133]
在一种实施方式中,在服务器配置了自定义日志参数的情况下,则执行s506。在服务器未配置自定义日志参数的情况下,则执行s507。
[0134]
在一种实施方式中,通过读取本地缓存中存储的信息,确定服务器是否配置了自定义日志参数。在本地缓存中存储有自定义日志参数的情况下,则确认服务器配置了自定义日志参数,否则,确认服务器未配置自定义日志参数。
[0135]
s506:日志打印工具基于请求标识、接口请求参数、接口调用参数和自定义日志参数,打印接口请求的目标链路节点的日志数据。
[0136]
其中,目标链路节点用于指示属于预设打印链路节点集合的链路节点。
[0137]
在一种实施方式中,在服务器配置有自定义日志参数的情况下,从接口请求中获取自定义日志参数对应的内容,打印自定义日志参数及自定义日志参数对应的内容。此外,还会打印接口请求参数及其对应的内容、接口调用参数及其对应的内容以及请求标识。
[0138]
s507:日志打印工具基于请求标识、接口请求参数、接口调用参数和日志打印工具预先配置的默认日志参数,打印接口请求的目标链路节点的日志数据。
[0139]
其中,目标链路节点属于预设打印链路节点集合。
[0140]
在一种实施方式中,在服务器未配置自定义日志参数的情况下,则获取日志打印工具预先配置的默认日志参数对应的内容,例如,错误码(result)、错误描述(errmsg)等,然后,打印日志打印工具预先配置的默认日志参数及默认日志参数对应的内容。此外,还会打印接口请求参数及其对应的内容、接口调用参数及其对应的内容以及请求标识。
[0141]
可选地,日志数据包括日志索引和日志详情,其中,日志索引和日志详情中分别包括请求标识。在s203之后,日志处理方法还包括:
[0142]
步骤一:将日志索引存储在第一数据库,第一数据库存储日志索引的时长为第一预设时长。
[0143]
在一种实施方式中,第一数据库和第二数据库安装在服务器上。
[0144]
在一种实施方式中,网关运行域将日志数据发送至kfaka消息,通过消费kfaka消息将日志数据分发到日志中心进行存储。具体的,通过消费kfaka消息中的topic,将日志索引分发到日志中心并存储在第一数据库。
[0145]
在一种实施方式中,第一数据库的mainkey(主键)是网关集群 时间戳,从而保证日志索引的唯一性。具体地,第一数据库根据网关集群和时间戳取余分片存储日志索引,按天建立索引,并只保留第一预设时长(例如,7天)的日志索引,定期清理存储时长大于第一预设时长的日志索引,以节约存储资源。
[0146]
在一种实施方式中,第一数据库为es数据库。当然,第一数据库也可以为其他便于检索索引的数据库,本公开对此不做限制。
[0147]
步骤二:将日志详情存储在第二数据库,第二数据库存储日志详情的时长为第一预设时长。
[0148]
在一种实施方式中,网关运行域将日志数据发送至kfaka消息,然后通过消费kfaka消息将日志数据分发到日志中心进行存储。具体的,通过消费kfaka消息中的klog,将日志详情分发到日志中心并存储在第二数据库。
[0149]
在一种实施方式中,日志详情为日志数据中的json数据。
[0150]
可选地,第一数据库和第二数据库为不同的数据库。通过设置将日志索引和日志详情分别存储在不同的数据库,实现对日志索引和日志详情的分级存储,有助于节省存储资源。
[0151]
在一种实施方式中,日志索引包括接口请求参数、请求标识、接口调用参数等参数,调用方可以基于日志索引中的参数进行日志查询,例如,将日志索引中的参数作为查询语句,向服务器发送包括该查询语句的第一查询请求,具体参见后续实施例,此处不再赘述。
[0152]
在一种实施方式中,日志详情包括请求标识、自定义日志参数或默认日志参数、接
口请求的耗时信息等,在接口请求发生故障时,调用方可以基于日志详情定位发生故障的原因。
[0153]
在一种实施方式中,在日志索引和日志详情分别存储在第一数据库和第二数据库中存储时长大于或等于第一预设时长的情况下,第一数据库和第二数据库分别删除日志索引和日志详情。
[0154]
在一种实施方式中,第一预设时长为7天。也即,第一数据库中的日志索引和第二数据库中日志详细只存储7天,超过7天的日志索引和日志详情会被定期清理。通过将第一预设时长设置为7天,能够解决大部分的日志查询问题,对于7天以前日志数据,可以通过离线hive表在第三数据库中查询。
[0155]
需要说明的,第一预设时长也可以为其他时长,例如,3天、10天或6天等,本公开对此不做限制。
[0156]
在一种实施方式中,第二数据库为hbase数据库。当然,第二数据库也可以为其他便于存储json数据的数据库,本公开对此不做限制。
[0157]
上述实施例中,通过将日志索引和日志详情分别存储在第一数据库和第二数据中,实现降低每个数据库被占用的存储资源量。进一步地,通过设置第一数据库存储日志索引时长和第二数据库存储日志详情的时长均为第一预设时长,实现将日志索引和日志详情分别临时存储在第一数据库和第二数据库,从而不仅可以满足调用方查询近期的日志数据,还可以极大的节约第一数据库和第二数据库的存储资源。
[0158]
可选地,日志处理方法还包括:将日志数据存储在第三数据库,第三数据库存储日志数据的时长为第二预设时长,第二预设时长大于第一预设时长。
[0159]
在一些实施例中,日志数据包括日志索引和日志详情。其中,日志索引包括接口请求参数、请求标识、接口调用参数等参数,调用方可以基于日志索引中的参数进行日志查询,例如,将日志索引中的参数作为查询语句,向服务器发送包括该查询语句的第一查询请求,具体参见后续实施例,此处不再赘述。日志详情包括请求标识、自定义日志参数或默认日志参数、接口请求的耗时信息等,在接口请求发生故障时,调用方可以基于日志详情定位发生故障的原因。
[0160]
在一种实施方式中,为了实现将日志数据长期存储在第三数据库,以满足调用方查询历史日志数据的需求,第二预设时长可以设置为较长的时长,例如,半年、一年或三年等,本公开对此不做限制。
[0161]
在一种实施方式中,第三数据库为hive数据库。
[0162]
在一种实施方式中,第三数据库安装在目标服务器上,通过将接口请求的日志数据长期存储在第三数据库,有助于减少服务器上存储日志数据对服务器处理接口请求的影响。
[0163]
在一种实施方式中,利用日志收集器,从网关运行域的本地缓存中离线收集接口请求的日志数据,并存储在第三数据库。
[0164]
在一种实施方式中,网关运行域的本地缓存中的日志数据的存储量大于或等于预设存储量的情况下,删除网关运行域的本地缓存中的日志数据。例如,预设存储量可以是200mb、500mb或1gb,当然,预设存储量也可以是其他数值,对此,本公开不做限制。
[0165]
在另一种实施方式中,网关运行域的本地缓存中的日志数据的存储时长大于或等
于预设存储时长的情况下,删除网关运行域的本地缓存中的日志数据。
[0166]
通过在满足预设条件的情况下,例如,存储量大于或等于预设存储量,或存储时长大于或等于预设存储时长,删除网关运行域的本地缓存中的日志数据,有助于降低日志数据在网关运行域的本地缓存的占用空间。
[0167]
可选地,第三数据库与第一数据库为不同的数据库,且第三数据库与第二数据库为不同的数据库,从而实现了对日志数据进行三级存储,也即,第一级存储用于指示第一数据库临时存储日志索引,第二级存储用于指示第二数据库临时存储的日志详情,第三级存储用于指示第三数据库长期存储日志数据,一方面,有助于提高日志查询的便利性和查询速度,另一方面,有助于降低日志数据占用的存储资源。
[0168]
上述实施例中,由于第一数据库和第二数据库中的日志数据是临时存储,通过将接口请求的日志数据长期存储在第三数据库中,有助于实现对历史日志数据的查询,避免用户无法查询接口请求的历史日志数据,有助于提高日志查询的便利性。
[0169]
可选地,日志处理方法还包括:步骤一:在日志数据的日志类型属于已知日志类型的情况下,存储日志数据;步骤二:在日志数据的日志类型不属于已知日志类型的情况下,丢弃日志数据。
[0170]
其中,已知日志类型包括:接口入参(api_input)类型、接口出参(api_output)类型、鉴权入参(auth_input)类型、鉴权出参(auth_output)类型、服务入参(service_input)类型、服务出参(service_output)类型和异常(exception)类型中的至少一项。
[0171]
在一种实施方式中,在接收到日志数据后,判断日志索引中的日志类型是否属于已知日志类型,在属于已知日志类型的情况下,则执行存储日志数据的操作,具体地,如果是日志索引则存储在第一数据库,如果是日志详情则存储在第二数据库中。在不属于已知日志类型的情况下,则丢弃。
[0172]
上述实施例中,通过设置在日志数据属于已知日志类型时存储日志数据,不属于已知日志类型时丢弃日志数据,有助于对接口请求的链路节点日志进行筛选,从而过滤掉无用的链路节点的日志数据,仅存储有分析价值的链路节点的日志数据,降低存储资源占用率。
[0173]
可选地,将日志详情存储在第二数据库,包括:步骤一:在第二数据库中不包括请求标识的情况下,将日志详情插入第二数据库;步骤二:在第二数据库中包括请求标识的情况下,将日志详情追加存储在第二数据库中请求标识所在的行。
[0174]
在一种实施方式中,在存储日志详情时,首先查询第二数据中是否存储有该日志详情对应的请求标识,在第二数据库中存储有该请求标识的情况下,则将日志详情追加该请求标识所在的行,也即,日志详情与请求标识在同一行,在第二数据库中未存储有请求标识的情况下,则将日志详情插入第二数据库中。需要说明的是,在第二数据库中,一个请求标识对应的全部日志数据在一行,也即,一个接口请求的各个链路节点的日志数据在同一行。
[0175]
上述实施例中,通过在第二数据库中包括请求标识的情况下,将日志详情存储至第二数据库中请求标识所在的行,并在第二数据库中不包括请求标识的情况下,将日志详情插入第二数据库,从而实现一个接口请求在第二数据库中仅记录一条日志,同一个接口请求的不同链路节点的日志会追加在同一条日志上,有助于查询日志时,基于请求标识可
以在一条查询记录中查到一个接口请求的全链路日志,提高查询速度和便利性。
[0176]
在一个具体实施方式中,如图6所示,日志处理方法,包括:
[0177]
s601:消费日志数据。
[0178]
在一种实施方式中,日志数据存储在kfaka消息中,通过消费kfaka消息,实现消费日志数据。
[0179]
s602:判断日志数据是否为已知日志类型。
[0180]
在一种实施方式中,在日志数据不是已知日志类型的情况下,执行s603。在日志数据为已知日志类型的情况下,执行s604。
[0181]
s603:丢弃日志数据。
[0182]
s604:异步存储日志数据。
[0183]
在一种实施方式中,对日志数据中的日志索引和日志详情进行异步存储。
[0184]
s605:判断是否为日志索引。
[0185]
在是日志索引的情况下,执行s606。在不是日志索引的情况下,执行s607。
[0186]
s606:将日志索引存储在第一数据库。
[0187]
s607:判断第二数据库中是否存在请求标识。
[0188]
在第二数据库中存在请求标识的情况下,执行s608。在第二数据库中不存在请求标识的情况下,执行s609。
[0189]
s608:将日志详情追加到第二数据库中请求标识所在的行。
[0190]
s609:将日志详情插入第二数据库。
[0191]
在一种实施方式中,如图7所示,日志中心在接收到kfaka消息发送的日志数据后,将日志索引存储在第一数据库,将日志详情存储在第二数据库。此外,日志中心从网关运行域获取接口请求的日志数据,存储在第三数据库。此外,调用方(isv)、内部用户或业务方通过日志中心进行日志查询。
[0192]
可选地,如图8所示,日志处理方法还包括:
[0193]
s801:接收调用方发送的第一查询请求,第一查询请求包括查询语句。
[0194]
其中,查询语句包括请求标识、接口请求参数或接口调用参数中的至少一项。
[0195]
需要说明的,查询语句用于指示第一查询请求的查询条件,也即,第一查询请求用于请求查询与查询语句匹配的日志数据。
[0196]
在一种实施方式中,如图9所示,调用方(isv)通过开发门户提供的日志工具(即日志查询平台)输入查询语句,并发送第一查询请求。通过提供日志查询平台,从而实现调用方的可视化查询,有助于提高日志查询的速度。
[0197]
在另一种实施方式中,如图9所示,内部用户通过网关管理域提供的日志管理工具输入查询语句,并发送第一查询请求。通过提供日志管理工具,从而实现内部用户的可视化查询,有助于提高日志查询的速度。
[0198]
s802:从第一数据库中查询查询语句对应的目标日志索引,向调用方返回目标日志索引。
[0199]
需要说明的,每个日志索引均对应唯一的请求标识。目标日志索引是第一数据库中存储的多个日志索引中与查询语句匹配的日志索引。
[0200]
在一种实施方式中,日志中心在接收到第一查询请求后,从第一数据库的多个日
志索引中,查询与查询语句匹配的目标日志索引,并将该目标日志索引发送给调用方,例如,isv,调用方在接收到目标日志索引后,在日志查询界面上显示目标日志索引。在查询人员触发某个目标日志索引时,调用方发送第二查询请求,用于查询被触发的目标日志索引对应的日志详情。
[0201]
s803:接收调用方发送的第二查询请求,第二查询请求包括目标日志索引所属接口请求的目标请求标识。
[0202]
在一种实施方式中,日志中心在接收到第二查询请求后,根据目标请求标识,从第二数据库中查询日志详情。
[0203]
s804:从第二数据库中查询目标请求标识对应的目标日志详情,并基于第二查询请求,向调用方返回目标日志详情。
[0204]
在一种实施方式中,日志中心在接收到第二查询请求后,从第二数据库中查询与目标请求标识对应的目标日志详情,并将目标日志详情发送给发送调用方,调用方在接收到目标日志详情后,在日志查询界面上显示目标日志详情。
[0205]
上述实施例中,通过分级检索,也即,先从第一数据库中查询与查询语句对应的目标日志索引,再基于目标日志索引所属接口请求的目标请求标识,从第二数据库中查询目标日志详情,由于日志索引的数据量比较小,先基于查询语句查询匹配的日志索引,在基于日志索引中的请求标识确定日志详情,有助于提高日志排查效率,例如,将日志查询时间由小时级别降低到分钟级别。
[0206]
上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0207]
本公开实施例还提供一种日志处理装置。
[0208]
图10是根据一示例性实施例示出的一种日志处理装置框图。参照图10,该日志数据处理装置1000包括接收模块1001、调用模块1002和日志模块1003。
[0209]
接收模块1001,被配置为执行接收接口请求,生成接口请求的请求标识;接口请求包括接口请求参数,接口请求参数用于表征接口请求的调用方信息以及接口请求所请求的接口信息。例如,结合图2,生成模块1001可以用于执行s201。
[0210]
调用模块1002,被配置为执行调用预先封装的日志打印工具,日志打印工具用于指示使用请求标识、接口请求参数和接口调用参数打印日志数据;接口调用参数用于表征执行接口请求时所使用的参数。例如,结合图2,调用模块1002可以用于执行s202。
[0211]
日志模块1003,被配置为执行基于日志打印工具,打印接口请求的日志数据。例如,结合图2,日志模块1003可以用于执行s203。
[0212]
在一种可能的实施方式中,日志模块被1003配置为执行:在目标参数属于预设打印参数集合的情况下,调用预先封装的日志打印工具;目标参数包括接口请求参数和/或接口调用参数。
[0213]
另一种可能的实施方式中,日志模块1003被配置为执行:在确定服务器配置有自
定义日志参数的情况下,日志打印工具基于请求标识、接口请求参数、接口调用参数和自定义日志参数,打印接口请求的日志数据;在确定服务器未配置自定义日志参数的情况下,日志打印工具基于请求标识、接口请求参数、接口调用参数和日志打印工具预先配置的默认日志参数,打印接口请求的日志数据。
[0214]
另一种可能的实施方式中,日志模块1003被配置为执行:获取执行接口请求的当前链路节点;在当前链路节点属于预设打印链路节点集合的情况下,日志打印工具基于请求标识、接口请求参数和接口调用参数,打印接口请求的当前链路节点的日志数据。
[0215]
另一种可能的实施方式中,该装置还包括发送模块1004,被配置为执行:在基于日志打印工具打印接口请求的日志数据之后,向调用方返回接口请求的请求结果信息,请求结果信息包括请求标识和接口调用参数。
[0216]
另一种可能的实施方式中,日志数据包括日志索引和日志详情,该装置还包括存储模块1005,被配置为执行:将日志索引存储在第一数据库;第一数据库存储日志索引的时长为第一预设时长;将日志详情存储至第二数据库;第二数据库存储日志详情的时长为第一预设时长。
[0217]
另一种可能的实施方式中,存储模块1005还被配置为执行:将日志数据存储在第三数据库,第三数据库存储日志数据的时长为第二预设时长,第二预设时长大于第一预设时长。
[0218]
另一种可能的实施方式中,存储模块1005还被配置为执行:在第二数据库中不包括请求标识的情况下,将日志详情插入第二数据库;在第二数据库中包括请求标识的情况下,将日志详情存储至第二数据库中请求标识所在的行。
[0219]
另一种可能的实施方式中,该装置还包括查询模块1006,被配置为执行:接收调用方发送的第一查询请求,第一查询请求包括查询语句;查询语句包括请求标识、接口请求参数和接口调用参数中的至少一项;从第一数据库中查询查询语句对应的目标日志索引,并基于第一查询请求,向调用方返回目标日志索引;接收调用方发送的第二查询请求,第二查询请求包括目标日志索引所属接口请求的目标请求标识;从第二数据库中查询目标请求标识对应的目标日志详情,并基于第二查询请求,向调用方返回目标日志详情。
[0220]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0221]
图11是根据一示例性实施例示出的服务器1100的结构框图,该服务器1100可因配置或性能不同而产生较大的差异,可以包括一个或一个以上的处理器1101和一个或一个以上的存储器1102。其中,存储器1102中存储有至少一条指令,至少一条指令由处理器1101加载并执行以实现上述各个方法实施例提供的日志处理方法。当然,该服务器1100还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0222]
在示例性实施例中,本公开实施例还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器1102,上述指令可由服务器1100的处理器1101执行以完成上述的日志处理方法。
[0223]
在实际实现时,接收模块1001、调用模块1002、日志模块1003、发送模块1004、存储模块1005和查询模块1006的处理功能可以由图11所示的处理器1101调用存储器1102中的程序代码来实现。其具体的执行过程可参考上述日志处理方法部分的描述,这里不再赘述。
[0224]
可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存储存储器(random access memory,ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0225]
在示例性实施例中,本公开实施例还提供了一种包括一条或多条指令的计算机程序产品,该一条或多条指令可以由服务器1100的处理器1101执行以完成上述日志处理方法。
[0226]
需要说明的是,上述计算机可读存储介质中的指令或计算机程序产品中的一条或多条指令被服务器1100的处理器1101执行时实现上述日志处理方法实施例的各个过程,且能达到上述日志处理方法相同的技术效果,为避免重复,这里不再赘述。
[0227]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0228]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献