1111import javafx .scene .image .Image ;
1212import javafx .stage .Stage ;
1313
14+ import java .io .IOException ;
15+ import java .util .logging .*;
16+
1417public class Main extends Application {
1518 private final EventBus eventBus = new EventBus ((exception , context ) -> {
1619 this .triggerUnexpectedThrowableEvent (new UnexpectedThrowableEvent (exception , "An Event Bus subscriber threw an uncaught exception" ));
@@ -25,6 +28,29 @@ public static void main(String[] args) {
2528
2629 @ Override
2730 public void start (Stage stage ) {
31+
32+ //Set up the global level logger. This handles IO for all loggers.
33+ Logger globalLogger = LogManager .getLogManager ().getLogger ("" );//This is our global logger
34+
35+ Handler fileHandler = null ;//This will be our handler for the global logger
36+
37+ try {
38+ fileHandler = new FileHandler ("./GRIP.log" );//Log to the file "GRIPlogger.log"
39+
40+ globalLogger .addHandler (fileHandler );//Add the handler to the global logger
41+
42+ fileHandler .setFormatter (new SimpleFormatter ());//log in text, not xml
43+
44+ //Set level to handler and logger
45+ fileHandler .setLevel (Level .FINE );
46+ globalLogger .setLevel (Level .FINE );
47+
48+ globalLogger .config ("Configuration done." );//Log that we are done setting up the logger
49+
50+ } catch (IOException exception ) {//Something happened setting up file IO
51+ throw new IllegalStateException (exception );
52+ }
53+
2854 this .eventBus .register (this );
2955 this .root = new MainWindowView (eventBus );
3056 /**
@@ -66,7 +92,7 @@ public final void onUnexpectedThrowableEvent(UnexpectedThrowableEvent event) {
6692 }
6793 });
6894
69- if (event .isFatal ()) {
95+ if (event .isFatal ()) {
7096 System .err .println ("Original fatal exception" );
7197 event .getThrowable ().printStackTrace ();
7298 System .exit (1 );
0 commit comments