public static void LogException(Exception exception) { var diagReport = new StringBuilder(); diagReport.AppendLine(Res.ClsErrorUnhandled); var appFile = Path.GetFullPath(Assembly.GetEntryAssembly().Location); var appFilePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorApplication, ObsufacatePathNames(appFile)); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorCommandLine, ObsufacatePathNames(Environment.CommandLine)); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorCurrentDirectory, ObsufacatePathNames(Environment.CurrentDirectory)); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorSEBinPath, GlobalSettings.Default.SEBinPath); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorSEBinVersion, GlobalSettings.Default.SEVersion); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorProcessorCount, Environment.ProcessorCount); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorOSVersion, Environment.OSVersion); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorVersion, Environment.Version); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorIs64BitOperatingSystem, Environment.Is64BitOperatingSystem); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorIntPtrSize, IntPtr.Size); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorIsAdmin, ToolboxUpdater.IsRuningElevated()); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorCurrentUICulture, CultureInfo.CurrentUICulture.IetfLanguageTag); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorCurrentCulture, CultureInfo.CurrentCulture.IetfLanguageTag); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorTimesStartedTotal, GlobalSettings.Default.TimesStartedTotal); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorTimesStartedLastReset, GlobalSettings.Default.TimesStartedLastReset); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorTimesStartedLastGameUpdate, GlobalSettings.Default.TimesStartedLastGameUpdate); diagReport.AppendFormat("\r\n"); diagReport.AppendFormat("{0}\r\n", Res.ClsErrorFiles); if (appFilePath != null) { var files = Directory.GetFiles(appFilePath); foreach (var file in files) { var filename = Path.GetFileName(file); var fileInfo = new FileInfo(file); var fileVer = FileVersionInfo.GetVersionInfo(file); diagReport.AppendFormat("{0:O}\t{1:#,###0}\t{2}\t{3}\r\n", fileInfo.LastWriteTime, fileInfo.Length, fileVer.FileVersion, filename); } } var binCache = ToolboxUpdater.GetBinCachePath(); if (binCache != null && Directory.Exists(binCache)) { diagReport.AppendFormat("\r\n"); diagReport.AppendFormat("{0} {1}\r\n", Res.ClsErrorBinCachePath, ObsufacatePathNames(binCache)); var files = Directory.GetFiles(binCache); foreach (var file in files) { var filename = Path.GetFileName(file); var fileInfo = new FileInfo(file); var fileVer = FileVersionInfo.GetVersionInfo(file); diagReport.AppendFormat("{0:O}\t{1:#,###0}\t{2}\t{3}\r\n", fileInfo.LastWriteTime, fileInfo.Length, fileVer.FileVersion, filename); } } Log.Fatal(diagReport.ToString(), exception); }
public static void LogException(Exception exception) { var diagReport = new StringBuilder(); diagReport.AppendLine("Unhandled Exception"); var appFile = Path.GetFullPath(Assembly.GetEntryAssembly().Location); var appFilePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); diagReport.AppendFormat("Application: {0}\r\n", ObsufacatePathNames(appFile)); diagReport.AppendFormat("CommandLine: {0}\r\n", ObsufacatePathNames(Environment.CommandLine)); diagReport.AppendFormat("CurrentDirectory: {0}\r\n", ObsufacatePathNames(Environment.CurrentDirectory)); diagReport.AppendFormat("SEBinPath: {0}\r\n", GlobalSettings.Default.SEBinPath); diagReport.AppendFormat("SEBinVersion: {0}\r\n", GlobalSettings.Default.SEVersion); diagReport.AppendFormat("ProcessorCount: {0}\r\n", Environment.ProcessorCount); diagReport.AppendFormat("OSVersion: {0}\r\n", Environment.OSVersion); diagReport.AppendFormat("Version: {0}\r\n", Environment.Version); diagReport.AppendFormat("Is64BitOperatingSystem: {0}\r\n", Environment.Is64BitOperatingSystem); diagReport.AppendFormat("IntPtr.Size: {0}\r\n", IntPtr.Size); diagReport.AppendFormat("IsAdmin: {0}\r\n", ToolboxUpdater.IsRuningElevated()); diagReport.AppendFormat("CurrentUICulture: {0}\r\n", CultureInfo.CurrentUICulture.IetfLanguageTag); diagReport.AppendFormat("CurrentCulture: {0}\r\n", CultureInfo.CurrentCulture.IetfLanguageTag); diagReport.AppendFormat("\r\n"); diagReport.AppendFormat("Files:\r\n"); if (appFilePath != null) { var files = Directory.GetFiles(appFilePath); foreach (var file in files) { var filename = Path.GetFileName(file); var fileInfo = new FileInfo(file); var fileVer = FileVersionInfo.GetVersionInfo(file); diagReport.AppendFormat("{0:O}\t{1:#,###0}\t{2}\t{3}\r\n", fileInfo.LastWriteTime, fileInfo.Length, fileVer.FileVersion, filename); } } var binCache = ToolboxUpdater.GetBinCachePath(); if (binCache != null && Directory.Exists(binCache)) { diagReport.AppendFormat("\r\n"); diagReport.AppendFormat("BinCachePath: {0}\r\n", ObsufacatePathNames(binCache)); var files = Directory.GetFiles(binCache); foreach (var file in files) { var filename = Path.GetFileName(file); var fileInfo = new FileInfo(file); var fileVer = FileVersionInfo.GetVersionInfo(file); diagReport.AppendFormat("{0:O}\t{1:#,###0}\t{2}\t{3}\r\n", fileInfo.LastWriteTime, fileInfo.Length, fileVer.FileVersion, filename); } } Log.Fatal(diagReport.ToString(), exception); }