private void OnStartup(object sender, StartupEventArgs eventArguments) { try { ProcessStartupArguments(AdaptStartupArguments(eventArguments.Args)); Current.ShutdownMode = ShutdownMode.OnExplicitShutdown; ApplicationHelpers.InitializeLoggers(); Log = ApplicationHelpers.CreateActiveLogger(EWpfClientLogCategory.WpfClient); Log.Info(ECoreLogMessage.Started); try { ApplicationHelpers.Initialize(_generateDatabase, _readOnlyJson, _readPreviouslyUnpackedJson); } catch (SettingsFileRegeneratedException) { Log.Warn(EWpfClientLogMessage.SettingsFileRenegenetated_Closing); MessageBox.Show ( Current.Windows.OfType <BaseWindow>().LastOrDefault() ?? new Window(), EUnlocalisedMessage.SettingFileRegenerated, EClientApplicationName.WarThunderPresetRandomizer, MessageBoxButton.OK, MessageBoxImage.Warning ); Environment.Exit(0); } ApplicationHelpers.Manager.RemoveOldLogFiles(); ApplicationHelpers.WindowFactory.CreateLoadingWindow().ShowDialog(); CreateMainWindow().ShowDialog(); } catch (Exception exception) { Log?.Fatal(ECoreLogMessage.AnErrorHasOccurred, exception); ShowErrorMessage(exception); Environment.Exit(1); } }
/// <summary> Initializes NLog-based loggers. Repeated initialization is being skipped. </summary> public static void InitializeLoggers() { if (_loggersInitialized) { return; } var fileLogger = new ConfiguredNLogger(ELoggerName.FileLogger, new ExceptionFormatter(), ESubdirectory.Logs, true); var wpfLogger = new ConfiguredNLogger(ELoggerName.WpfLogger, new ExceptionFormatter()); wpfLogger.LogInstantiation(fileLogger); Loggers = new IConfiguredLogger[] { fileLogger, wpfLogger, }; Log = CreateActiveLogger(EWpfClientLogCategory.ApplicationHelpers); Log.Debug(ECoreLogMessage.InstanceInitialised.FormatFluently(EWord.Loggers)); _loggersInitialized = true; }