一种日志服务处理方法及装置制造方法及图纸

技术编号:8685371 阅读:136 留言:0更新日期:2013-05-09 05:02
本申请提供了一种日志服务处理方法,包括:在组件启动后,传递所述组件的上下文对象到非公共服务平台OSGi类型日志的工厂;保存所述组件的上下文对象到所述非OSGi类型日志的工厂;判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务;在所述非OSGi类型日志的工厂对应的日志服务已注册的情况下,返回所述OSGi类型日志服务;在所述非OSGi类型日志的工厂对应的日志服务未注册的情况下,将所述日志服务注册为OSGi类型日志服务。因此,本申请能够集成多种类型的日志服务,集成多种类型日志服务后,可以满足基于OSGi的不同Java应用程序根据自己需求选择适合自己的日志服务并对其进行应用的要求。

【技术实现步骤摘要】

本专利技术涉及日志服务
,尤其涉及一种日志服务处理方法及装置
技术介绍
OSGi (公共服务平台,open Service Gateway Initiative)是一个基于 Java 的服务规范,它是为那些需要长时间运行,动态更新并且对运行环境的影响尽可能小的系统制定的。并且,OSGi向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。其中,OSGi联盟已经开发了例如日志、安全等很多公共功能的标准组件接口。目前的日志服务只有SLF4J是能够运行到OSGi中的日志插件。基于OSGi的Java应用程序能够应用该日志服务。而常见的另外一些日志服务如java.util, logging、simpleLogger, log4j等却不能运行到OSGi中,所以也就不能被基于OSGi的Java应用程序应用。因此,急需一种日志服务处理方法,将不基于OSGi的日志服务转换为基于OSGi的日志服务,进一步使基于OSGi的Java应用程序能够通过一种通用的日志接口调用转换后的日志服务。
技术实现思路
为解决上述技术问题,本申请实施例提供一种日志服务处理方法,以达到集成多种类型的日志服务的目的,技术方案如下:一种日志服务处理方法,包括:在组件启动后,传递所述组件的上下文对象到非公共服务平台OSGi类型日志的工厂;保存所述组件的上下文对象到所述非OSGi类型日志的工厂;判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务;在所述非OSGi类型日志的工厂对应的日志服务已注册的情况下,返回所述OSGi类型日志服务;在所述非OSGi类型日志的工厂对应的日志服务未注册的情况下,将所述日志服务注册为OSGi类型日志服务。优选的,判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务包括:根据日志读取服务接口 LogReaderService判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务;所述日志读取服务接口 LogReaderServic根据日志的类型和版本号判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务。优选的,在所述非OSGi类型日志的工厂对应的日志服务未注册的情况下,将所述日志服务注册为OSGi类型日志服务包括:判断所述非OSGi类型日志的工厂对应的日志服务是否存在于公共服务平台OSGi中;在非OSGi类型日志的工厂对应的日志服务未存在于公共服务平台OSGi中的情况下,添加所述非OSGi类型日志的工厂对应的日志服务并将所述非OSGi类型日志的工厂对应的日志服务注册为OSGi类型日志服务;在非OSGi类型日志的工厂对应的日志服务存在于公共服务平台OSGi中的情况下,将所述非OSGi类型日志的工厂对应的日志服务注册为OSGi类型日志服务。优选的,还包括:导出所述非OSGi类型日志的工厂对应的日志服务的接口,所述接口携带有版本号。优选的,还包括:在所述非OSGi类型日志的工厂对应的日志服务注册后,在输出所述非OSGi类型日志的工厂对应的日志服务记录的日志消息时,日志监听器接口 LogListener发送日志条目接口 LogEntry类型的日志条目至日志服务接口 LogService,获取所述日志条目接口LogEntry对象对应的日志消息;还包括:在所述非OSGi类型日志的工厂对应的日志服务注册后,以纯服务的方式或者以嵌入的方式加载所述日志服务。一种日志服务处理装置,包括:传递单元,用于在组件启动后,传递所述组件的上下文对象到非公共服务平台OSGi类型日志的工厂;存储单元,用于保存传递单元传递的组件的上下文对象到所述非OSGi类型日志的工厂;第一判断单元,用于判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务;返回单元,用于在第一判断单元的判断结果为所述非OSGi类型日志的工厂对应的日志服务已注册的情况下,返回所述OSGi类型日志服务;第一注册单元,用于在第一判断单元的判断结果为所述非OSGi类型日志的工厂对应的日志服务未注册的情况下,将所述日志服务注册为OSGi类型日志服务。优选的,第一判断单元具体用于根据日志读取服务接口 LogReaderService判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务;第一判断单元具体用于根据日志的类型和版本号判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务。优选的,第一注册单元包括:第二判断单元、添加单元和第二注册单元;其中,第二判断单元,用于判断所述非OSGi类型日志的工厂对应的日志服务是否存在于公共服务平台OSGi中;添加单元,用于在第二判断单元的判断结果为非OSGi类型日志的工厂对应的日志服务未存在于公共服务平台OSGi中的情况下,添加所述非OSGi类型日志的工厂对应的日志服务;第二注册单元,用于注册所述添加单元添加的非OSGi类型日志的工厂对应的日志服务或用于在第二判断单元的判断结果为非OSGi类型日志的工厂对应的日志服务存在于公共服务平台OSGi中的情况下,注册所述非OSGi类型日志的工厂对应的日志服务。优选的,还包括:导出单元,用于导出所述非OSGi类型日志的工厂对应的日志服务的接口,所述导出单元具体用于导出携带有版本号的所述非OSGi类型日志的工厂对应的日志服务的接□。优选的,还包括:处理单元,用于在所述非OSGi类型日志的工厂对应的日志服务注册后,在输出所述非OSGi类型日志的工厂对应的日志服务记录的日志消息时,日志监听器接口LogListener发送日志条目接口 LogEntry类型的日志条目至日志服务接口 LogService,获取所述日志条目接口 LogEntry对象对应的日志消息;还包括:加载单元,用于在所述非OSGi类型日志的工厂对应的日志服务注册后,以纯服务的方式或者以嵌入的方式加载所述日志服务。与现有技术相比,本申请的有益效果是:在本申请中,在OSGi中可以创建非OSGi类型的日志服务并在OSGi中注册该非OSGi类型的日志服务,将该非OSGi类型的日志服务转换为基于OSGi的日志服务,达到集成多种类型的日志服务的目的,集成多种类型日志服务后,可以满足基于OSGi的不同Java应用程序根据自己需求选择适合自己的日志服务并对其进行应用的要求。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请提供的一种日志服务处理方法的一种流程图;图2是本申请提供的一种日志服务处理方法中将未注册的日志服务注册为OSGi类型日志服务的一种流程图;图3是本申请提供的一种日志服务处理方法的另一种流程图;图4a是本申请提供的一种日志服务处理装置的一种结构示意图;图4b是本申请提供的一种日志服务处理装置中第一注册单元的具体组成的一种结构示意图;图5是本申请提供的一种日志服务处理装置的另一种结构示意图。具体实施例方式下面将结合本申请实施例中的本文档来自技高网...

【技术保护点】
一种日志服务处理方法,其特征在于,包括:在组件启动后,传递所述组件的上下文对象到非公共服务平台OSGi类型日志的工厂;保存所述组件的上下文对象到所述非OSGi类型日志的工厂;判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务;在所述非OSGi类型日志的工厂对应的日志服务已注册的情况下,返回所述OSGi类型日志服务;在所述非OSGi类型日志的工厂对应的日志服务未注册的情况下,将所述日志服务注册为OSGi类型日志服务。

【技术特征摘要】
1.一种日志服务处理方法,其特征在于,包括: 在组件启动后,传递所述组件的上下文对象到非公共服务平台OSGi类型日志的工厂; 保存所述组件的上下文对象到所述非OSGi类型日志的工厂; 判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务; 在所述非OSGi类型日志的工厂对应的日志服务已注册的情况下,返回所述OSGi类型日志服务; 在所述非OSGi类型日志的工厂对应的日志服务未注册的情况下,将所述日志服务注册为OSGi类型日志服务。2.根据权利要求1所述的方法,其特征在于,判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务包括: 根据日志读取服务接口 LogReaderService判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务; 所述日志读取服务接口 LogReaderServic根据日志的类型和版本号判断所述非OSGi类型日志的工厂对应的日志服务是否已注册为OSGi类型日志服务。3.根据权利要求1所述的方法,其特征在于,在所述非OSGi类型日志的工厂对应的日志服务未注册的情况下,将所述日志服务注册为OSGi类型日志服务包括: 判断所述非OSGi类型日志的工厂对应的日志服务是否存在于公共服务平台OSGi中; 在非OSGi类型日志 的工厂对应的日志服务未存在于公共服务平台OSGi中的情况下,添加所述非OSGi类型日志的工厂对应的日志服务并将所述非OSGi类型日志的工厂对应的日志服务注册为OSGi类型日志服务; 在非OSGi类型日志的工厂对应的日志服务存在于公共服务平台OSGi中的情况下,将所述非OSGi类型日志的工厂对应的日志服务注册为OSGi类型日志服务。4.根据权利要求1所述的方法,其特征在于,还包括: 导出所述非OSGi类型日志的工厂对应的日志服务的接口,所述接口携带有版本号。5.根据权利要求1所述的方法,其特征在于,还包括: 在所述非OSGi类型日志的工厂对应的日志服务注册后,在输出所述非OSGi类型日志的工厂对应的日志服务记录的日志消息时,日志监听器接口 LogListener发送日志条目接口 LogEntry类型的日志条目至日志服务接口 LogService,获取所述日志条目接口LogEntry对象对应的日志消息; 所述方法还包括:在所述非OSGi类型日志的工厂对应的日志服务注册后,以纯服务的方式或者以嵌入的方式加载所述日志服务。6.一种日志服务处理装置,其特征在于,包括: 传递单元,用于在组件启动后,传递所述组件...

【专利技术属性】
技术研发人员:张权刘鹏尚秀颖李峰张青
申请(专利权)人:山东中创软件商用中间件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1