WEB开发网
开发学院软件开发Java 为 Eclipse 插件添加日志框架:两种增强 Eclipse ... 阅读

为 Eclipse 插件添加日志框架:两种增强 Eclipse 日志功能的方法

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 无论在何时部署插件,都只需要修改日志配置文件和日志过滤条件,为 Eclipse 插件添加日志框架:两种增强 Eclipse 日志功能的方法(5),或者修改其输出,而不需要修改任何代码,这是向定制的 appender 传递必要信息的一种解决方案,在已经对 appender 进行实例化和完整配置并准

无论在何时部署插件,都只需要修改日志配置文件和日志过滤条件,或者修改其输出,而不需要修改任何代码。更好的一点是,如果日志被禁用,那么所有的语句都不会影响性能,因为性能是 Log4j 设计的主要考虑因素之一。因此您可以在任何必要的地方采用这种记录器的方法。

如何实现

对于 com.tools.logging 的使用,我们就谈这么多;现在让我们来看一下其实现。

首先来看一下类 PluginLogManager。每个插件都有一个日志管理器。该管理器包含一个 hierarchy 对象,以及定制 appenders 所需的数据,如清单 2 所示。该对象并非直接源自于 Hierarchy 对象,因此不便将它暴露给最终用户。它在实现方面提供了更多的自由。构造函数使用默认的 DEBUG 级别创建一个 hierarchy 对象,然后使用提供的属性对其进行配置。它还可以简单地使用 xml 属性;只有对于对 Xerces 插件添加从属性并使用 DOMConfigurator 而不是 PropertyConfigurator 才是必要的。这部分内容留给读者作为练习。


清单 2. PluginLogManager 构造函数
public PluginLogManager(Plugin plugin,Properties properties) { 
  this.log = plugin.getLog();  
  this.stateLocation = plugin.getStateLocation(); 
  this.hierarchy = new Hierarchy(new RootCategory(Level.DEBUG)); 
  this.hierarchy.addHierarchyEventListener(new PluginEventListener()); 
  new PropertyConfigurator().doConfigure(properties,this.hierarchy); 
  LoggingPlugin.getDefault().addLogManager(this); 
} 

注意 PluginLogManager 内部类是如何实现 org.apache.log4j.spi.HierarchyEventListener 的。这是向定制的 appender 传递必要信息的一种解决方案。在已经对 appender 进行实例化和完整配置并准备添加它时,会调用 addAppenderEvent() 方法,如清单 3 所示:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Eclipse 插件 添加

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接