diff options
| author | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
|---|---|---|
| committer | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
| commit | 00a491d93733d4625ad329b2ba8237f445364b3f (patch) | |
| tree | 4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs | |
| parent | 124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff) | |
| download | Tango-00a491d9.tar.gz Tango-00a491d9.zip | |
merge
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs | 102 |
1 files changed, 22 insertions, 80 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs index e478dba77..0bd9f9d1d 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.xaml.cs @@ -5,20 +5,15 @@ using System.Data; using System.Diagnostics; using System.IO; using System.Linq; -using System.Net; -using System.Threading; using System.Threading.Tasks; using System.Windows; using Tango.BL; using Tango.Core; using Tango.Core.DI; using Tango.Core.Helpers; -using Tango.Insights; -using Tango.Integration.Operation; using Tango.Logging; using Tango.PPC.Common; using Tango.PPC.Common.EventLogging; -using Tango.PPC.Common.Helpers; using Tango.PPC.Common.Notifications; using Tango.PPC.Common.WatchDog; using Tango.Settings; @@ -30,7 +25,7 @@ namespace Tango.PPC.UI /// </summary> public partial class App : Application { - public static WpfGlobalExceptionTrapper ExceptionTrapper; + private WpfGlobalExceptionTrapper exceptionTrapper; public static String[] StartupArgs { get; private set; } private LogManager LogManager = LogManager.Default; @@ -41,12 +36,6 @@ namespace Tango.PPC.UI /// <param name="e">A <see cref="T:System.Windows.StartupEventArgs" /> that contains the event data.</param> protected override void OnStartup(StartupEventArgs e) { - //throw new InvalidOperationException("This is a fake exception!!!"); - - //removed due to possibly causing this issue: - //https://stackoverflow.com/questions/41543956/how-to-debug-not-enough-storage-is-available-to-process-this-command - //ThreadPool.SetMaxThreads(1000, 1000); - //If no debugger is attached and the argument -debug was passed launch the debugger. if (e.Args.Contains("-debug") && !Debugger.IsAttached) { @@ -56,34 +45,18 @@ namespace Tango.PPC.UI StartupArgs = e.Args; //LogManager.RegisterLogger(new ConsoleLogger("Tango PPC Debug")); - LogManager.RegisterLogger(new FileLogger() - { - EnableAutoLogRemoval = true, - EnableMaxFileSizeLimit = true, - AutoLogRemovalPeriod = TimeSpan.FromDays(30) - }); - -#if DEBUG + LogManager.RegisterLogger(new FileLogger()); LogManager.RegisterLogger(new VSOutputLogger()); -#endif - //Configure machine operator logger. - var operatorLogger = MachineOperator.EmbeddedLogManager.RegisteredLoggers.SingleOrDefault(x => x is FileLogger) as FileLogger; - if (operatorLogger != null) - { - operatorLogger.EnableAutoLogRemoval = true; - operatorLogger.EnableMaxFileSizeLimit = true; - operatorLogger.AutoLogRemovalPeriod = TimeSpan.FromDays(30); - } - - LogsHelper.SetLogSafe(LogManager.CreateLogSafe()); - LogManager.Log($"Application Started... Version: '{AssemblyHelper.GetCurrentAssemblyVersion()}'."); + LogManager.Log("Application Started..."); base.OnStartup(e); - ExceptionTrapper = new WpfGlobalExceptionTrapper(); - ExceptionTrapper.Initialize(this); - ExceptionTrapper.ApplicationCrashed += ExceptionTrapper_ApplicationCrashed; + exceptionTrapper = new WpfGlobalExceptionTrapper(); + exceptionTrapper.Initialize(this); + exceptionTrapper.ApplicationCrashed += ExceptionTrapper_ApplicationCrashed; + + LogManager.Categories.Clear(); CoreSettings.DefaultDataSource = new DataSource() { @@ -92,33 +65,25 @@ namespace Tango.PPC.UI IntegratedSecurity = true, }; - WebRequest.DefaultWebProxy = null; + SettingsManager.Default.GetOrCreate<CoreSettings>(); - GetLastApplicationCrashFromWindows(); - } + var settings = SettingsManager.Default.GetOrCreate<PPCSettings>(); - #region Global Exception Trapping - - private async void GetLastApplicationCrashFromWindows() - { - var logItem = await ExceptionTrapper.GetLastApplicationCrashEventLog(60); - if (logItem != null) + if (settings.LoggingCategories.Count == 0) { - LogManager.Log(logItem); - - try - { - InsightsManager.Default.InsertApplicationException(new InsightsApplicationException() - { - Time = DateTime.UtcNow, - Exception = logItem.Message, - IsApplicationCrash = true - }); - } - catch { } + settings.LoggingCategories.Add(LogCategory.Critical); + settings.LoggingCategories.Add(LogCategory.Error); + settings.LoggingCategories.Add(LogCategory.Info); + settings.LoggingCategories.Add(LogCategory.Warning); } + + settings.Save(); + + LogManager.Categories.AddRange(settings.LoggingCategories); } + #region Global Exception Trapping + /// <summary> /// Handles the ApplicationCrashed event of the ExceptionTrapper. /// </summary> @@ -126,19 +91,7 @@ namespace Tango.PPC.UI /// <param name="e">The <see cref="ApplicationCrashedEventArgs"/> instance containing the event data.</param> private void ExceptionTrapper_ApplicationCrashed(object sender, ApplicationCrashedEventArgs e) { - List<String> ignoredExceptions = new List<string>() - { - "FocusVisualStyle", - "ThreadAbortException", - "A Task's exception(s) were not observed" - }; - - String exceptionString = e.Exception.ToStringSafe(); - - if (ignoredExceptions.Exists(x => exceptionString.Contains(x))) - { - return; - } + e.TryRecover = true; try { @@ -147,17 +100,6 @@ namespace Tango.PPC.UI try { - InsightsManager.Default.InsertApplicationException(new InsightsApplicationException() - { - Time = DateTime.UtcNow, - Exception = e.Exception.ToString() - }); - } - catch - { } - - try - { if (Application.Current == null) { new Application { ShutdownMode = ShutdownMode.OnExplicitShutdown }; |
