public void Log(LogMessage logMessage) { switch (logMessage.Type) { case LogEntryType.FatalWithScreenshot: Logger.Fatal(logMessage.Text, logMessage.Args); ProgressLog?.Report(logMessage); ErrorLog?.Report(new LogMessage(logMessage.Text + " -- " + SaveErrorScreenshot())); break; case LogEntryType.Fatal: Logger.Fatal(logMessage.Text, logMessage.Args); ProgressLog?.Report(logMessage); ErrorLog?.Report(logMessage); break; case LogEntryType.Error: Logger.Error(logMessage.Text, logMessage.Args); ErrorLog?.Report(logMessage); break; case LogEntryType.Warning: case LogEntryType.Normal: Logger.Info(logMessage.Text, logMessage.Args); ProgressLog?.Report(logMessage); break; case LogEntryType.Info: Logger.Info(logMessage.Text, logMessage.Args); break; case LogEntryType.Debug: if (Settings.Default.LogDebugMessages) { Logger.Debug(logMessage.Text, logMessage.Args); } break; case LogEntryType.Trace: if (Settings.Default.LogTraceMessages) { Logger.Debug(logMessage.Text, logMessage.Args); } break; } }