一种日志动态配置方法、装置及系统与流程

文档序号:12550559阅读:330来源:国知局
一种日志动态配置方法、装置及系统与流程

本发明实施例涉及电子信息处理技术,尤其涉及一种日志动态配置方法、装置及系统。



背景技术:

随着Java语言的发展,Java的日志成为Java编程和运行过程中不可获取的组成部分。目前Apache为用户提供了一个开源的日志架构,即Log4j(Log for java,Java的日志)。

相关技术中的日志配置方法存在缺陷,需要改进。



技术实现要素:

本发明提供一种日志动态配置方法、装置及系统,可以提高服务稳定性并实现对分布式节点的日志配置进行更新,提高分布式节点日志配置更新的可靠性。

第一方面,本发明实施例提供了一种日志动态配置方法,包括:

当通过Log4j接收到日志配置更新指令时,根据所述日志配置更新指令对日志配置数据库进行更新;

获取所述日志配置更新指令对应的至少一个目标项目节点;

向所述至少一个目标项目节点发送第一消息,以便所述目标项目节点接收到所述第一消息时访问所述日志配置数据库进行日志配置信息的更新,所述第一消息表示存在日志配置更新需求。

第二方面,本发明实施例还提供了一种日志动态配置方法,包括:

当接收到第一消息时,读取数据库地址信息,所述第一消息表示存在日志配置信息更新需求;

根据所述数据库地址信息访问日志配置数据库,所述日志配置数据库中存储包括更新的日志配置信息;

通过所述日志配置数据库获取所述更新的日志配置信息。

第三方面,本发明实施例还提供了一种日志动态配置装置,包括:

更新指令接收模块,用于接收日志配置更新指令;

数据库更新模块,用于根据所述更新指令接收模块接收到的所述日志配置更新指令对日志配置数据库进行更新;

目标节点获取模块,用于获取所述日志配置更新指令对应的至少一个目标项目节点;

发送模块,用于向所述目标节点获取模块获取的所述至少一个目标项目节点发送第一消息,以便所述目标项目节点接收到所述第一消息时访问所述日志配置数据库进行日志配置信息的更新,所述第一消息表示存在日志配置更新需求。

第四方面,本发明实施例还提供了一种日志动态配置装置,包括:

变更消息接收模块,用于接收第一消息,所述第一消息表示存在日志配置信息更新需求;

地址读取模块,用于当所述变更消息接收模块接收到所述第一消息时,读取数据库地址信息;

数据库访问模块,用于根据所述地址读取模块读取的所述数据库地址信息访问日志配置数据库,所述日志配置数据库中存储包括更新的日志配置信息;

配置更新模块,用于通过所述数据库访问模块访问的所述日志配置数据库获取更新的日志配置信息。

第五方面,本发明实施例还提供了一种日志动态配置系统,包括:日志管理后台、配置中心、日志配置数据库以及与项目存在订阅关系的项目节点,其中,每个项目被至少一个项目节点订阅;

所述日志管理后台接收用户输入的日志配置更新指令;

所述日志管理后台根据所述日志配置更新指令向日志配置数据库写入更新的日志配置信息;

所述日志配置数据库根据日志管理后台发送的更新的日志配置信息对已存储的日志配置数据进行更新;

所述日志管理后台向所述配置中心发送日志更新事件;

所述配置中心接收到所述日志更新事件时,从项目节点中获取所述日志配置更新指令对应的至少一个目标项目节点;

所述配置中心向所述至少一个目标项目节点发送第一消息,所述第一消息表示存在日志配置更新需求;

目标项目节点接收到第一消息时,读取数据库地址信息,并根据所述数据库地址信息访问日志配置数据库,通过所述日志配置数据库获取更新的日志配置信息。

本发明实施例能够根据接收到的日志配置更新指令对日志配置数据库进行更新,然后获取相同项目下的全部目标项目节点,最后通知每个目标项目节点访问日志配置数据库进行日志配置的更新,在保持系统服务运行的同时实现日志配置的更新,提高服务稳定性。对于通过分布式设置的多个目标项目节点,能够实现对分布式节点的日志配置进行更新,提高分布式节点日志配置更新的可靠性。

附图说明

图1是本发明实施例中的一个日志动态配置方法的流程图;

图2是本发明实施例中的另一个日志动态配置方法的流程图;

图3是本发明实施例中的一个日志动态配置装置的结构示意图;

图4是本发明实施例中的另一个日志动态配置装置的结构示意图;

图5是本发明实施例中的一个日志动态配置系统的系统框图;

图6是本发明实施例中的一个移动终端的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

图1为本发明实施例提供的一种日志动态配置方法的流程图,本实施例可适用于对分布式节点的日志配置进行更新的情况。可选的,该方法可以由接收日志配置更新指令的web服务器来执行,该web服务器可配置有与方法对应的处理部件,如存储有本实施例所示方法对应的计算机程序的存储器以及从该存储器中读取程序代码进行运行的处理器等。可选的,该方法也可以由web服务器将用户输入的日志配置更新指令发送到特定服务器,由该特定服务器执行本实施例提供的方法。可选的,该方法还可以由多个服务器通过协同运行进行实现,具体协同过程后续进行详细说明。本实施例提供的日志动态配置方法如图1所示,包括如下步骤:

步骤101、当接收到日志配置更新指令时,根据日志配置更新指令对日志配置数据库进行更新。

可选的,通过Log4j接收到日志配置更新指令。

日志配置更新指令用于对Log4j中的日志配置参数进行更新。Log4j包括Logger、Appender和Layout三个组件,其中Logger为日志记录器,用于收集处理日志记录,Logger对应的日志配置参数用于对如何处理日志进行设置。Appender表示日志输出目的地,Appender对应的日志配置参数用于对日志的输出位置(或输出地址)进行设置。Layout用于记录日志格式化信息,Layout对应的日志配置参数用于对日志的输出格式进行设置。通常,一个Logger可对应多个Appender,一个Appender可对应一个Layout。

当用户存在对日志配置参数进行调整需求时,用户(或程序员)可在浏览器中输入Log4j的web服务器网址,通过访问该网址登录到加载有Log4j的web服务器中。用户可通过浏览器对Log4j的上述三个组件中的任意一个或多个组件的配置参数进行设置。用户在浏览器中输入日志配置参数时,Log4j管理后台根据用户输入的日志配置参数生成日志配置更新指令。

可选的,日志配置更新指令中携带有用户输入的日志配置参数。

可选的,日志配置更新指令包括下述至少一种参数:日志配置修改参数、日志配置添加参数、日志配置删除参数。

相应的,根据日志配置更新指令对日志配置数据库进行更新,可通过下述至少一种方式进行实施:

根据所述日志配置更新指令中携带的日志配置修改参数,修改所述日志配置修改参数对应的待修改日志配置参数;

根据所述日志配置更新指令中携带的日志配置添加参数,添加新的日志配置参数;

根据所述日志配置更新指令中携带的日志配置删除参数,删除所述日志配置删除参数对应的待删除日志配置参数。

调整需求包括对已有日志配置参数的修改需求、对已有日志配置参数的删除需求以及新建日志配置参数的添加需求。当存在修改需求时,生成的日志配置更新指令中包含日志配置修改参数,用于表示对某个已有日志配置参数进行修改,该参数包括待修改日志配置参数标识以及修改值。当存在删除需求时,生成的日志配置更新指令中包含日志配置删除参数,用于表示对某个已有日志配置参数进行删除,该参数包括待删除日志配置参数标识(如名称)。当存在添加需求时,生成的日志配置更新指令中包含日志配置添加参数,用于表示添加日志配置参数,该参数包括待添加的日志配置参数标识(如名称)以及参数值。

可选的,日志配置数据库中配置有日志配置信息表(又称Logger配置表)、日志输出控制配置表(又称Appender配置表)和日志输出格式配置表(又称Layout配置表)。其中,日志配置信息表(又称Logger配置表)包括项目标识(project)、项目名称和日志级别(level),日志输出控制配置表(又称Appender配置表)包括日志输出类型(type)和输出路径(path),日志输出格式配置表(又称Layout配置表)包括输出格式。上述三个配置表中均含有更新时间属性(u_time),用于保存该条记录(日志配置参数)的最新修改时间。

Logger配置表中项目名称为日志(logger)的名称,对应java类的包名。日志级别(level)的值可以为下述任意一个:OFF(关闭)FATAL(致命的)ERROR(错误)WARN(警告)INFO(信息)DEBUG(调试)ALL(所有)。

Appender配置表中日志输出类型(type)的值可以为下述任意一个:Console(控制台)File(文件)JDBC、JMS。输出路径(path)表示日志的存储地址。

Layout配置表中输出格式(pattern)的值可以为下述任意一个:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)、

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)、

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)、

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。

进一步的,可在初始化阶段对日志配置数据库进行初始化,例如,在日志配置数据库中上述日志配置信息表、日志输出控制配置表和日志输出格式配置表。

步骤102、获取日志配置更新指令对应的至少一个目标项目节点。

现有技术中日志配置更新的对象为某一个节点(或服务器)。在一种实现方式中,本发明实施例的更新对象为目标项目对应的全部节点。例如,目标项目A涉及节点a、节点b和节点c,现有技术中由于用户所在终端的IP地址唯一,因此该地址通过哈希算法等地址映射后,只能够对节点a、节点b或节点c进行择一更新,即无法对与映射后的节点(如节点a)属于相同目标项目的其他节点(如节点b和节点c)进行日志配置更新,进而无法满足分布式系统的日志配置更新需求。本发明实施例可实现面向项目的日志配置更新,即在接收到用户输入的日志配置更新指令后,获取日志配置更新指令对应的全部目标项目节点,进而能够对全部目标项目节点进行日志配置更新。

可选的,步骤102可通过下属方式进行实施:

步骤1021、获取日志配置更新信息所属的目标项目。

根据日志配置更新指令指向的日志配置参数可确定该被指向的日志配置参数所在的项目标识(project),该项目标识(project)为目标项目的项目标识。

步骤1022、将与目标项目存在订阅关系的节点确定为目标项目节点。

可在项目生成时生成节点与项目的订阅关系,该订阅关系又称为映射关系,即属于同一个项目X的多个项目节点订阅均订阅项目X,以便当项目X的日志配置参数发生变化时,可根据订阅关系确定需要告知的目标项目节点。

步骤103、向至少一个目标项目节点发送第一消息,以便目标项目节点接收到第一消息时访问日志配置数据库进行日志配置信息的更新。

其中,第一消息表示存在日志配置更新需求。目标项目节点可以为服务器也可以为移动终端等用户设备。

第一消息可以为一个内容为空的具有特定信令标识的信息。目标项目节点接收到第一消息时,确定存在日志配置的更新需求。目标项目节点根据预存储的日志配置数据库地址访问日志配置数据库,根据日志配置数据库中已更新的日志配置信息对目标项目节点本地的日志配置信息进行更新。

可选的,第一消息中可携带有日志配置数据库的数据库地址信息,以便在目标项目节点中未预置日志配置数据库地址时,根据第一消息中携带的数据库地址信息对日志配置数据库进行访问。

图2为本发明实施例提供的另一种日志动态配置方法的流程图,图2所示方法为与图1所示方法匹配,图2所示方法可实施在目标项目节点中,该方法包括:

步骤201、当接收到第一消息时,读取数据库地址信息。

其中,第一消息表示存在日志配置信息更新需求。该数据库地址信息可以为预存的,也可以为从第一消息中解析得到的。

步骤202、根据数据库地址信息访问日志配置数据库。

其中,日志配置数据库中存储包括更新的日志配置信息。

步骤203、通过日志配置数据库获取更新的日志配置信息。

根据数据库地址信息可登录到日志配置数据库,通过数据库读写语言以及查询语言可获取到更新的日志配置信息。

示例性的,可使用Log plugin插件从数据库中加载最新的logger,然后刷新LoggerContext以使配置生效。

本发明实施例能够根据接收到的日志配置更新指令对日志配置数据库进行更新,然后获取相同项目下的全部目标项目节点,最后通知每个目标项目节点访问日志配置数据库进行日志配置的更新,在不关闭系统服务的同时实现日志配置的更新,提高服务稳定性。对于通过分布式设置的多个目标项目节点,能够实现对分布式节点的日志配置进行更新,提高分布式节点日志配置更新的可靠性。

本发明实施例提供的日志动态配置方法,除了能够达到上述有益效果,还能够为用户提供在线动态的日志级别配置,使得用户在定位程序问题时,可在不重启系统服务的前提下,将日志级别修改为DEBUG。或者,用户在遇到性能瓶颈时,可在不重启系统服务的前提下,将日志级别修改为ERROR,提高测试效率。此外,用户能够动态修改、增加或删除日志的输出地址或输出格式。提高用户操作的灵活性以及修改操作的全面性。

图3为本发明实施例提供的一种日志动态配置装置的结构示意图,该装置可位于日志管理后台服务器中,例如运行Log4j管理后台的服务器,用于实现图1所示的方法,如图3所示,该日志动态配置装置包括:更新指令接收模块11,用于接收日志配置更新指令;

数据库更新模块12,用于根据所述更新指令接收模块11接收到的所述日志配置更新指令对日志配置数据库进行更新;

目标节点获取模块13,用于获取所述日志配置更新指令对应的至少一个目标项目节点;

发送模块14,用于向所述目标节点获取模块13获取的所述至少一个目标项目节点发送第一消息,以便所述目标项目节点接收到所述第一消息时访问所述日志配置数据库进行日志配置信息的更新,所述第一消息表示存在日志配置更新需求。

进一步的,所述目标节点获取模块13用于:

获取所述日志配置更新信息所属的目标项目;

将与所述目标项目存在订阅关系的节点确定为目标项目节点。

进一步的,还包括数据库配置模块15;

所述数据库配置模块15用于,在所述日志配置数据库中配置日志配置信息表、日志输出控制配置表和日志输出格式配置表,其中,日志配置信息表包括项目标识、项目名称和日志级别,日志输出控制配置表包括日志输出类型和输出路径,日志输出格式配置表包括输出格式。

进一步的,所述日志配置更新指令包括下述至少一种参数:日志配置修改参数、日志配置添加参数、日志配置删除参数。相应的,所述数据库更新模块用于:

根据所述日志配置更新指令中携带的日志配置修改参数,修改所述日志配置修改参数对应的待修改日志配置参数;或者,根据所述日志配置更新指令中携带的日志配置添加参数,添加新的日志配置参数;或者,根据所述日志配置更新指令中携带的日志配置删除参数,删除所述日志配置删除参数对应的待删除日志配置参数。

图4为本发明实施例提供的另一种日志动态配置装置的结构示意图,该装置可位于项目节点中,用于实现图2所示的方法,如图4所示,该日志动态配置装置包括:

变更消息接收模块21,用于接收第一消息,所述第一消息表示存在日志配置信息更新需求;

地址读取模块22,用于当所述变更消息接收模块21接收到所述第一消息时,读取数据库地址信息;

数据库访问模块23,用于根据所述地址读取模块22读取的所述数据库地址信息访问日志配置数据库,所述日志配置数据库中存储包括更新的日志配置信息;

配置更新模块24,用于通过所述数据库访问模块23访问的所述日志配置数据库获取所述更新的日志配置信息。

上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述实施例所提供的方法。

图5为本发明实施例提供的一种日志动态配置系统的系统框图,该系统用于实现上述实施例所示的方法,包括:日志管理后台、配置中心、日志配置数据库以及与项目存在订阅关系的项目节点,其中,每个项目被至少一个项目节点订阅。

步骤301、日志管理后台接收用户输入的日志配置更新指令。

可选的,日志管理后台为Log4j管理后台。

步骤302、日志管理后台根据日志配置更新指令向日志配置数据库写入更新的日志配置信息。

可选的,日志管理后台根据日志配置更新指令确定更新的日志配置信息。然后,日志管理后台通过超文本传输协议(HyperText Transfer Protocol,http)向日志配置数据库发送更新的日志配置信息。

步骤303、日志配置数据库根据日志管理后台发送的更新的日志配置信息对已存储的日志配置数据进行更新。

示例性的,管理后台通过http请求修改Logger配置表,更新Logger的更新时间(u_time),并通过传输控制协议(Transmission Control Protocol,TCP)向配置中心发布一个节点变更事件。

示例性的,管理后台通过http请求修改Appender配置表,更新Appender的更新时间(u_time),并通过TCP向配置中心发布一个节点变更事件。

示例性的,管理后台通过http请求修改Layout配置表,更新Layout的更新时间(u_time),并通过TCP向配置中心发布一个节点变更事件。

步骤304、日志管理后台向配置中心发送日志更新事件。

可选的,日志管理后台通过传输控制协议TCP向配置中心发送(又称发布)日志更新事件。

由于TCP为传输层协议因此TCP的响应速度高于http的响应速度。为了提高实时性,通过TCP向配置中心发送日志更新事件能够更加安全、快捷的实现日志更新时间的通知。

步骤305、配置中心接收到日志更新事件时,从项目节点中获取日志配置更新指令对应的至少一个目标项目节点。

步骤306、配置中心向至少一个目标项目节点发送第一消息。

其中,第一消息表示存在日志配置更新需求。进一步的,配置中心向至少一个目标项目节点发送第一消息,包括:

配置中心通过传输控制协议TCP向至少一个目标项目节点发送第一消息。

步骤307、目标项目节点接收到第一消息时,读取数据库地址信息,并根据数据库地址信息访问日志配置数据库,通过日志配置数据库获取更新的日志配置信息。

配置中心通过TCP以第一消息的方式,通知目标项目节点中的Log plugin插件从数据库中加载最新的APPENDER,刷新LoggerContext以使配置生效。

目标项目节点可通过下述程序语言进行日志配置数据库的访问以及日志配置数据的更新:

//获取log4j2.xml的logger配置

LoggerContext ctx=(LoggerContext)LogManager.getContext(false);

Configuration config=ctx.getConfiguration();

Map<String,LoggerConfig>loggers=config.getLoggers();

//更新logger级别

logger.setLevel(level);

//刷新log配置

ctx.updateLoggers()。

需要说明的是,日志管理后台、配置中心和日志配置数据库的实现方式有多种,例如将上述三个部件全部配置到一网络侧服务器中;或者,将任意两个部件配置到一个网络侧服务器,将另一个部件配置到另一网络侧服务器中;或者,将三个部件分别配置到网络侧服务器中。上述网络侧服务器可以为实体硬件服务器也可以为例如虚拟机形式的虚拟服务器。

本发明实施例提供的日志动态配置系统能够根据通过log4j接收到的日志配置更新指令对日志配置数据库进行更新,然后获取相同项目下的全部目标项目节点,最后通知每个目标项目节点访问日志配置数据库进行日志配置的更新,在不关闭系统服务的同时实现日志配置的更新,提高服务稳定性。对于通过分布式设置的多个目标项目节点,能够实现对分布式节点的日志配置进行更新,提高分布式节点日志配置更新的可靠性。

本发明实施例提供的日志动态配置方法,除了能够达到上述有益效果,还能够为用户提供在线动态的日志级别配置,使得用户在定位程序问题时,可在不重启系统服务的前提下,将日志级别修改为DEBUG。或者,用户在遇到性能瓶颈时,可在不重启系统服务的前提下,将日志级别修改为ERROR,提高测试效率。此外,用户能够动态修改、增加或删除日志的输出地址或输出格式。提高用户操作的灵活性以及修改操作的全面性。

项目节点可以配置在服务器也可以配置在移动终端。本发明实施例提供一种项目节点(或目标项目节点)为移动终端时,节点的硬件结构设计。图6为本发明实施例提供的一种移动终端的结构示意图,该移动终端可以包括:壳体(图中未示出)、存储器801、中央处理器(Central Processing Unit,CPU)802(又称处理器,以下简称CPU)、存储在存储器801上并可在处理器802上运行的计算机程序、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU802和所述存储器801设置在所述电路板上;所述电源电路,用于为所述移动终端的各个电路或器件供电;所述存储器801,用于存储可执行程序代码;所述CPU802通过读取所述存储器801中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:当接收到第一消息时,读取数据库地址信息;根据所述数据库地址信息访问日志配置数据库;通过所述日志配置数据库获取更新的日志配置信息。

所述移动终端还包括:外设接口803、RF(Radio Frequency,射频)电路805、音频电路806、扬声器811、电源管理芯片808、输入/输出(I/O)子系统809、触摸屏812、其他输入/控制设备810以及外部端口804,这些部件通过一个或多个通信总线或信号线807来通信。

应该理解的是,图示移动终端800仅仅是移动终端的一个范例,并且移动终端800可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

下面就本实施例提供的用于实现日志动态配置方法的移动终端进行详细的描述,该移动终端以手机为例。

存储器801,所述存储器801可以被CPU802、外设接口803等访问,所述存储器801可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

外设接口803,所述外设接口803可以将设备的输入和输出外设连接到CPU802和存储器801。

I/O子系统809,所述I/O子系统809可以将设备上的输入输出外设,例如触摸屏812和其他输入/控制设备810,连接到外设接口803。I/O子系统809可以包括显示控制器8091和用于控制其他输入/控制设备810的一个或多个输入控制器8092。其中,一个或多个输入控制器8092从其他输入/控制设备810接收电信号或者向其他输入/控制设备810发送电信号,其他输入/控制设备810可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器8092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。

其中,按照触摸屏的工作原理和传输信息的介质分类,触摸屏812可以为电阻式、电容感应式、红外线式或表面声波式。按照安装方式分类,触摸屏812可以为:外挂式、内置式或整体式。按照技术原理分类,触摸屏812可以为:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏或表面声波技术触摸屏。

触摸屏812,所述触摸屏812是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。可选的,触摸屏812将用户在触屏幕上触发的电信号(如接触面的电信号),发送给处理器802。

I/O子系统809中的显示控制器8091从触摸屏812接收电信号或者向触摸屏812发送电信号。触摸屏812检测触摸屏上的接触,显示控制器8091将检测到的接触转换为与显示在触摸屏812上的用户界面对象的交互,即实现人机交互,显示在触摸屏812上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。

RF电路805,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。

音频电路806,主要用于从外设接口803接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器811。

扬声器811,用于将手机通过RF电路805从无线网络接收的语音信号,还原为声音并向用户播放该声音。

电源管理芯片808,用于为CPU802、I/O子系统及外设接口所连接的硬件进行供电及电源管理。

在本实施例中,中央处理器802用于:当接收到第一消息时,读取数据库地址信息;根据所述数据库地址信息访问日志配置数据库;通过所述日志配置数据库获取更新的日志配置信息。

需要说明的是,移动终端还可以包括摄像头、蓝牙模块等,在此不再赘述。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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