2 * event dispatcher with logging
4 * License : The MIT License
5 * Copyright(c) 2011 olyutorskii
8 package jp.sfjp.jindolf.log;
10 import java.awt.AWTEvent;
11 import java.awt.EventQueue;
12 import java.awt.Toolkit;
13 import java.util.logging.Level;
14 import java.util.logging.Logger;
17 * 異常系をロギングするイベントディスパッチャ。
19 public class LoggingDispatcher extends EventQueue{
21 private static final String FATALMSG =
22 "イベントディスパッチ中に異常が起きました。";
24 private static final Logger LOGGER = Logger.getAnonymousLogger();
29 public LoggingDispatcher(){
36 * カスタム化されたイベントキューに差し替える。
38 public static void replaceEventQueue(){
39 Toolkit kit = Toolkit.getDefaultToolkit();
40 EventQueue oldQueue = kit.getSystemEventQueue();
41 EventQueue newQueue = new LoggingDispatcher();
42 oldQueue.push(newQueue);
50 private void errlog(Throwable e){
51 LOGGER.log(Level.SEVERE, FATALMSG, e);
58 * @param event {@inheritDoc}
61 protected void dispatchEvent(AWTEvent event){
63 super.dispatchEvent(event);
64 }catch(RuntimeException e){
73 // TODO Toolkit#beep()もするべきか
74 // TODO モーダルダイアログを出すべきか
75 // TODO 標準エラー出力抑止オプションを用意すべきか