ErrorLogger.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.IO;
  3. namespace Optimizer
  4. {
  5. internal static class ErrorLogger
  6. {
  7. internal static string ErrorLogFile = Path.Combine(Required.CoreFolder, "Optimizer.log");
  8. internal static void LogError(string functionName, string errorMessage, string errorStackTrace)
  9. {
  10. try
  11. {
  12. if (!File.Exists(ErrorLogFile) || (File.Exists(ErrorLogFile) && File.ReadAllText(ErrorLogFile).Trim() == string.Empty))
  13. {
  14. string bitness = Environment.Is64BitOperatingSystem ? "64-bit" : "32-bit";
  15. if (Utilities.CurrentWindowsVersion == WindowsVersion.Windows10)
  16. {
  17. File.AppendAllText(ErrorLogFile, string.Format("{0} - {1} ({2})", Utilities.GetOS(), Utilities.GetWindows10Build(), bitness));
  18. }
  19. else
  20. {
  21. File.AppendAllText(ErrorLogFile, string.Format("{0} - ({1})", Utilities.GetOS(), bitness));
  22. }
  23. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  24. File.AppendAllText(ErrorLogFile, string.Format("Optimizer {0} - .NET Framework {1} - Experimental build: {2}", Program.GetCurrentVersionTostring(), Utilities.GetNETFramework(), Program.EXPERIMENTAL_BUILD));
  25. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  26. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  27. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  28. }
  29. File.AppendAllText(ErrorLogFile, string.Format("[ERROR] [{0}] in function [{1}]", DateTime.Now.ToString(), functionName));
  30. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  31. File.AppendAllText(ErrorLogFile, errorMessage);
  32. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  33. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  34. File.AppendAllText(ErrorLogFile, errorStackTrace);
  35. // seperator
  36. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  37. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  38. File.AppendAllText(ErrorLogFile, Environment.NewLine);
  39. }
  40. catch { }
  41. }
  42. }
  43. }