Java Swing和SWT事件自动记录器
我们的桌面应用程序有很多用例。而且通常很难重现缺陷,并指定如何重现缺陷的所有步骤Java Swing和SWT事件自动记录器,java,eclipse,swing,swt,rcp,Java,Eclipse,Swing,Swt,Rcp,我们的桌面应用程序有很多用例。而且通常很难重现缺陷,并指定如何重现缺陷的所有步骤 是否可以为所有Swing和SWT事件创建类似拦截器的内容,并将它们记录到控制台,而无需将log.info放入每个actionListener()或view activator中,或在菜单contributor上等等?也许您可以这样做 public class MyEventQueue extends EventQueue { private static final Logger logger = Log
是否可以为所有Swing和SWT事件创建类似拦截器的内容,并将它们记录到控制台,而无需将log.info放入每个actionListener()或view activator中,或在菜单contributor上等等?也许您可以这样做
public class MyEventQueue extends EventQueue {
private static final Logger logger = Logger.getLogger( MyEventQueue.class.getName() );
@Override
protected void dispatchEvent( AWTEvent newEvent )
{
try {
logger.info("New Event start: "+ newEvent.toString() );
super.dispatchEvent( newEvent );
} catch( RuntimeException e ) {
//log uncatch exceptions in edt
logger.error(e.getCause(),e);
JOptionPane.showMessageDialog( null, "someDescriptiveMessage");
}
}
}
您可以使用助手方法在应用程序启动之前进行设置
public static void captureUncaughtExceptionInEvent(){
EventQueue queue = Toolkit.getDefaultToolkit().getSystemEventQueue();
queue.push(new MyEventQueue());
}
这将记录所有事件