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

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

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 显然,在有机会设置插件位置前,为 Eclipse 插件添加日志框架:两种增强 Eclipse 日志功能的方法(7),您不能打开文件,因此当调用 activateOptions() 时,appender 在 addAppenderEvent 方法被调用之前不会启动,Log4j 文档对如何编写定制

显然,在有机会设置插件位置前,您不能打开文件。因此当调用 activateOptions() 时,如果还没有位置信息,就会被标记为未决的;当最后设置位置信息时,会再次调用该方法,此时 appender 就准备好,可以使用了。

另外一个 appender PluginLogAppender 的生命周期相同,不过由于它并没有对现有的 appender 进行扩展,因此您不必担心初始化的问题。appender 在 addAppenderEvent 方法被调用之前不会启动。Log4j 文档对如何编写定制 appender 进行了详细的讨论。清单 4 给出了 append 方法。


清单 4. PluginLogAppender 的 append 方法
public void append(LoggingEvent event) { 
  
  if (this.layout == null) { 
   this.errorHandler.error("Missing layout for appender " + 
       this.name,null,ErrorCode.MISSING_LAYOUT); 
   return; 
  } 
  String text = this.layout.format(event); 
  Throwable thrown = null; 
  if (this.layout.ignoresThrowable()) { 
   ThrowableInformation info = event.getThrowableInformation(); 
   if (info != null) 
     thrown = info.getThrowable(); 
  } 
  
  Level level = event.getLevel(); 
  int severity = Status.OK; 
  if (level.toInt() >= Level.ERROR_INT) 
   severity = Status.ERROR; 
  else 
  if (level.toInt() >= Level.WARN_INT) 
   severity = Status.WARNING; 
  else 
  if (level.toInt() >= Level.DEBUG_INT) 
   severity = Status.INFO; 
 
  this.pluginLog.log(new Status(severity, 
       this.pluginLog.getBundle().getSymbolicName(), 
       level.toInt(),text,thrown)); 
} 

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

Tags:Eclipse 插件 添加

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