日志组件是每一个系统在开发的时候必不可少的东东,目前已经有了很多日志组件,如log4j、jdk的logger等,其他作为日志门面的有apache的commons.logging、slf4j等,它们都是用来整合不同的日志组件的,避免系统依赖于某一个特定的日志组件,在slf4j出现以前,大家最常用的组合就是commons logging和log4j了,所以很多以前开发的组件(如apapche的绝大多数组件)都是采用commons logging来记录日志。
在OSGI环境中使用日志其实是一个比较麻烦的问题,毕竟很多以前开发的组件并不是为OSGI而设计的,所以有诸多不良反应,而这些组件又大多数使用了commons logging,因此在OSGI中整合使用commons logging也是必须的。今天我这里主要就是介绍下在OSGI环境中使用commons logging,然后使用的实现类就是JDK的logger,使用步骤如下:
1.在你的bundle中只使用org.apache.commons.logging.Log,eclipse已经自带了org.apache.commons.logging_1.0.4这个bundle,因此,只需要在你的bundle中导入org.apache.commons.logging包即可;
2.配置config.ini文件,添加如下内容:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
java.util.logging.config.file=configuration/logger.properties
config.ini文件存放在configuration目录下,eclipse的euqinox在启动的时候会把所有的属性都设置到系统属性中(可以通过System.getProperty来获取)
3.在第2步中,我们设置了JDK的日志配置文件logger.properties,在configuration目录下,和config.ini同一目录,其内容如下:
handlers= java.util.logging.FileHandler
.level= DEBUG
java.util.logging.FileHandler.pattern = my-log-%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
这些配置会被JDK的LogManager获取并配置日志,我这里是使用文件记录,具体的可以参考JDK的日志配置。
4.通过这些配置后,我们就可以使用commons logging来将日志通过JDK的logger导出到文件中了,当然也可以使用JDK logger的其他特性。
在OSGI中使用JDK的logger的好处就是不用担心ClassLoader的问题了,以上的方法是整合commons logging组件,使用log4j也就是配置调整的问题了。
当然在OSGI中还有其他方式来实现日志,比如使用OSGI本身的日志服务、使用slf4j日志组件等。
分享到:
相关推荐
《OSGi and Apache Felix 3.0 Beginner's Guide》此书中例子的源代码,已使用过,是可以跑的
Build your very own OSGi applications using the flexible and powerful Felix Framework
包含电子书和第04、05、06、07、08、09、10、11、13章的代码, 是学习OSGi和Apache Felix的一个很好的入门资料, 虽然版本有一点点老了, 但是基本的东西没有变, 值得下下来一看!
利用R-OSGi实现分布式OSGi应用 本文通过介绍传统 OSGi 应用程序及 R-OSGi 的实现方式入手,阐述了 R-OSGi 对于 OSGi 规范的实现方式。然后通过一个简单的功能实现由浅入深地讲述传统 OSGi 和 R-OSGi 上的两种不同...
内容简介: ClassLoader体系结构 类装载器在JVM中并不是唯一的,JVM自带了三个装载器,用户也可以根据自己的需求自定义新的装载器,这些装载器的体系结构可以看作是树状结构,如图1所示:
基于 OSGi 的面向服务的组件编程呆呆呆呆呆呆地
基于java的开发源码-OSGi 分布式通讯组件 R-OSGi.zip 基于java的开发源码-OSGi 分布式通讯组件 R-OSGi.zip 基于java的开发源码-OSGi 分布式通讯组件 R-OSGi.zip 基于java的开发源码-OSGi 分布式通讯组件 R-OSGi.zip ...
在felix2.0.1扩展Hibernate,使之工作于OSGI框架之中。
开发一个简单的 OSGi Web 应用实例,如何进行OSGI开发的 实例有利于入门着进行使用
OSGi and Apache Felix 3.0 Beginner's Guide 英文版和代码
OSGI企业应用开发(十五)基于Spring、Mybatis、Spring MVC实现一个登录应用博文源码
OSGi and Apache Felix 3.0 Beginner.pdf
介绍OSGI组件编程,详细介绍用eclipse和Equinox开发OSGI程序
探索 OSGi 框架的组件运行机制探索 OSGi 框架的组件运行机制
osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍
Equinox开发OSGi应用程序
扩展Tomcat支持OSGi应用服务项目文件。其项目为eclipse工程。项目说明请参见我的blog《扩展Tomcat支持OSGi应用服务》:http://blog.163.com/haizai219@126/blog/static/44412555200971223629869/
OSGI企业应用开发(十四)整合Spring、Mybatis、Spring MVC博文源码
框架为应用程序(组件(bundle))提供了一个标准环境。整个框架可以划分为一些层次: 1.运行环境 2.模块(Bundle) 3.生命周期管理 4.服务注册 5.扩展点支持 目前OSGi.NET具有如下特色: 1.组件的可插拔性:...
org.jbundle.util.osgi.wrapped.org.apache.http.client-4.1.2.jar