`
ferreousbox
  • 浏览: 287123 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在OSGI中应用apache loggin日志组件

阅读更多

    日志组件是每一个系统在开发的时候必不可少的东东,目前已经有了很多日志组件,如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日志组件等。

2
1
分享到:
评论
1 楼 sunger 2011-12-05  
我的每隔bundle里面都要导入这个包吗? 那太麻烦了 ,有其他的方法?

相关推荐

    OSGi and Apache Felix 3.0 Beginner's Guide

    框架布局通常指出了OSGi环境中的不同组件如何组织在一起,而功能层描述了在OSGi环境中运行的应用程序的层次结构。束生命周期状态则涉及到OSGi中组件从安装到激活、停止和卸载的不同阶段。束布线是指不同束之间的依赖...

    OSGI中Hibernate扩展在felix中的应用

    标题"OSGI中Hibernate扩展在felix中的应用"指的是如何在OSGI Felix框架中整合和使用Hibernate。Felix是Apache软件基金会的一个项目,它是OSGI规范的开源实现。将Hibernate引入OSGI环境,可以实现更灵活的部署和管理...

    《OSGi and Apache Felix 3.0 Beginner's Guide》源代码

    通过逐一研究这些源代码,读者可以逐步学习OSGi的核心概念,了解如何在实际项目中运用Apache Felix。每个章节的代码都是一个精心设计的示例,旨在帮助读者理解OSGi框架的强大功能,并提供动手实践的机会。对于想要...

    java ClassLoader机制及其在OSGi中的应用

    Java ClassLoader机制是Java虚拟机(JVM)中一个至关重要的组成部分,它的主要任务是将类的.class文件加载到JVM中...理解并掌握ClassLoader的工作原理和在OSGi中的应用,对于开发高效、可扩展的Java应用程序至关重要。

    OSGI 开发文档中文的

    9. **实战应用**:"OSGI实战.pdf"可能包含实际项目案例,演示如何在真实场景中应用OSGI解决特定问题。 通过阅读这份文档和解压后的"dist.rar"和"code.rar"文件,你不仅可以深入了解OSGI技术,还能获得实践经验,...

    OSGI组件编程(osgi.component.programming)

    OSGI组件编程是一种在Java平台上构建模块化应用程序的方法,它由OSGi联盟制定标准,并被广泛应用于企业级软件开发,尤其是对于需要高度可扩展性和动态性的系统。在本教程中,我们将深入探讨如何使用Eclipse和Equinox...

    OSGi and Apache Felix 3.0 Beginner.pdf

    《OSGi与Apache Felix 3.0初学者指南》是一本深入浅出地介绍OSGi框架及其在Apache Felix实现下的应用开发的书籍。OSGi(Open Service Gateway Initiative)是一种Java平台上的模块化系统和动态模块加载环境,它允许...

    OSGi and Apache Felix 3.0 Beginner's Guide 代码和书

    9. **最佳实践和案例研究**:书中可能会包含实际项目中的案例,展示如何在真实场景中应用OSGi和Apache Felix,提供最佳实践和避免常见问题的建议。 10. **安全性和权限管理**:学习OSGi的安全模型,如何控制bundle...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    为了在OSGI环境中运行这个应用,我们需要一个OSGI容器,如Apache Felix或Eclipse Equinox。这些容器负责加载和管理bundle,以及它们之间的依赖关系。每个技术(Spring、Mybatis、Spring MVC)都需要对应的OSGI兼容...

    Equinox开发OSGi应用程序

    通过OSGi,开发者可以轻松地管理和控制应用程序中的各个模块(即bundles),并能够在运行时动态安装、启动、停止和卸载这些模块。 ##### OSGi框架 为了开发基于OSGi的应用程序,需要使用实现了OSGi标准的框架。...

    基于OSGi的分布式系统集中日志管理方案.pdf

    这种基于OSGi的日志管理方案以插件形式部署到应用程序中。这意味着系统管理员可以随时卸载这个OSGi插件,让应用回到使用原始的本地日志存储方式。这种方法的优点在于它的灵活性和便利性,可以根据需要快速切换日志...

    osgi 在web容器中部署

    为了在Tomcat中部署OSGi应用,我们需要一个桥接工具,如Apache Felix的WebConsole或Pax Web。这些工具可以将OSGi环境集成到Tomcat中,允许OSGi bundles作为Web应用的一部分运行。 Apache Felix WebConsole是一个...

    OSGI应用中整合Spring、Mybatis、Spring MVC案例

    在OSGI(Open Service Gateway Initiative)应用环境中,整合Spring、Mybatis和Spring MVC可以实现模块化、可热更新和高效的企业级应用开发。OSGI是一个Java框架,它允许动态地安装、卸载和升级服务,提供了强大的...

    深入理解OSGi:Equinox原理、应用与最佳实践.pdf

    4. 尽量将共享库打包成Fragment Bundle,而不是将它们包含在应用Bundle中。 5. 明确每个Bundle的作用和责任,合理规划 Bundle 的生命周期管理。 6. 使用白名单方式来控制服务的导出和导入,以增强模块的封装性。 7. ...

    基于OSGi和Spring开发Web应用

    在基于OSGi和Spring开发Web应用的过程中,首先需要指定Target Platform到所有需要用到的bundle包目录中,这是为了确保开发环境能够识别并正确加载所有必要的组件。接下来,创建一个服务接口bundle,定义接口类及其...

    【BluePrint】使用 Blueprint Container 规范构建 OSGi 应用程序

    在IT行业中,OSGi(Open Services Gateway Initiative)是一种模块化软件开发框架,它允许开发者将应用程序分解为独立的、可重用的组件,称为服务。这些组件可以动态地安装、卸载和升级,无需重启应用服务器。...

    osgi gemini blueprint环境

    Gemini Blueprint是OSGi环境中用于管理服务和组件的一种工具,它基于Spring Blueprint规范,提供了在OSGi容器中使用Spring应用上下文的功能。 这篇名为“osgi gemini blueprint环境”的博文可能详细阐述了如何配置...

    在Eclipse RCP中应用Spring OSGI 管理bean(一)

    标题中的“在Eclipse RCP中应用Spring OSGI 管理bean(一)”表明这是一篇关于如何在Eclipse Rich Client Platform (RCP)应用程序中集成Spring框架,并利用OSGi服务来管理Bean的教程。Eclipse RCP是一个用于构建桌面...

    OSGi and Apache Felix 3.0 Beginner's Guide电子书和源代码

    包含电子书和第04、05、06、07、08、09、10、11、13章的代码, 是学习OSGi和Apache Felix的一个很好的入门资料, 虽然版本有一点点老了, 但是基本的东西没有变, 值得下下来一看!

    利用R-OSGi实现分布式OSGi应用

    利用R-OSGi实现分布式OSGi应用 本文通过介绍传统 OSGi 应用程序及 R-OSGi 的实现方式入手,阐述了 R-OSGi 对于 OSGi 规范的实现方式。然后通过一个简单的功能实现由浅入深地讲述传统 OSGi 和 R-OSGi 上的两种不同...

Global site tag (gtag.js) - Google Analytics