Eclipse插件开发日志篇

  • 介绍
在开发Eclipse插件过程中,你是怎么做异常处理的? 通过debug模式来调试?使用System.out.println?还只是e.printStackTrace();? 以上方法都是不推荐的。原因有几点:影响性能、可维护性差、实际运行中没有控制台、无法做问题反馈(从用户的角度来看)。在Eclipse平台中,已经有一套可用的Log系统,下面给出一个使用的例子:
  • 代码片段
[codesyntax lang="java"]
/**
* Copyright http://surenpi.com. All Rights Reserved.
*/
package gboat2.dev.settings.log;

import org.eclipse.core.runtime.ILog;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;

import gboat2.dev.settings.Activator;

/**
 * 
 * 用于在插件中输出日志
 * <p>
 * 对Eclipse平台中的日志服务做封装
 * </p>
 * @author http://surenpi.com
 * @since jdk1.6
 * 2015年7月28日
 *  
 */
public class Logger {
	
	private static final ILog log = Activator.getDefault().getLog();
	private static final String ID = Activator.PLUGIN_ID;
	
	public static void info(String message) {
		info(message);
	}
	
	public static void info(String message, Throwable e) {
		log(IStatus.INFO, message, e);
	}
	
	public static void warning(String message) {
		warning( message);
	}
	
	public static void warning(String message, Throwable e) {
		log(IStatus.WARNING, message, e);
	}
	
	public static void error(String message) {
		error(message);
	}
	
	public static void error(String message, Throwable e) {
		log(IStatus.ERROR, message, e);
	}
	
	public static void ok(String message) {
		ok(message);
	}
	
	public static void ok(String message, Throwable e) {
		log(IStatus.OK, message, e);
	}
	
	public static void log(int level, String message) {
		log(level, message, null);
	}
	
	public static void log(int level, String message, Throwable e) {
		log(new Status(level, ID, message, e));
	}
	
	public static void log(IStatus status) {
		log.log(status);
	}

}
[/codesyntax] 上面的类是对Eclipse平台的日志类做了一个简单的封装。从上面的代码可以看到,ILog这个借口需要的参数是IStatus,而IStatus是根据插件的id来区分的,无法直接定位到打印日志的具体位置。但是可以接受Throwable接口的参数。 调用上面的方法打印的日志可以从Eclipse中自带的日志视图(View)查看,如下图所示: [caption id="attachment_2131" align="alignnone" width="921"] Eclipse插件开发日志篇_第1张图片 Eclipse Error Log[/caption]

你可能感兴趣的:(Eclipse插件开发日志篇)