exceptions are now logged
created EnhancedRollingFileAppender to allow RollOnStartup
cleaned up and consolidated common code
converted code to use immutability