From 0e506e7877e4d9deadea45d50617b8df22d23e17 Mon Sep 17 00:00:00 2001 From: Jaex Date: Thu, 5 Jan 2023 15:31:08 +0300 Subject: [PATCH] fixed #4231: Added "DisableLogging" registry setting --- ShareX.HelpersLib/Forms/DebugForm.cs | 2 ++ ShareX.HelpersLib/Forms/ErrorForm.cs | 12 ++++++------ ShareX.HelpersLib/Logger.cs | 9 ++++++--- ShareX/CleanupManager.cs | 19 +++++++++++-------- ShareX/Program.cs | 9 ++++++--- ShareX/SystemOptions.cs | 2 ++ 6 files changed, 33 insertions(+), 20 deletions(-) diff --git a/ShareX.HelpersLib/Forms/DebugForm.cs b/ShareX.HelpersLib/Forms/DebugForm.cs index df92afca1..7d03e100d 100644 --- a/ShareX.HelpersLib/Forms/DebugForm.cs +++ b/ShareX.HelpersLib/Forms/DebugForm.cs @@ -53,6 +53,8 @@ private DebugForm(Logger logger) rtbDebug.ScrollToCaret(); rtbDebug.AddContextMenu(); + btnOpenLogFile.Enabled = !string.IsNullOrEmpty(Logger.LogFilePath); + ShareXResources.ApplyTheme(this); string startupPath = AppDomain.CurrentDomain.BaseDirectory; diff --git a/ShareX.HelpersLib/Forms/ErrorForm.cs b/ShareX.HelpersLib/Forms/ErrorForm.cs index eaa5a631e..1c610aa55 100644 --- a/ShareX.HelpersLib/Forms/ErrorForm.cs +++ b/ShareX.HelpersLib/Forms/ErrorForm.cs @@ -32,20 +32,20 @@ namespace ShareX.HelpersLib public partial class ErrorForm : Form { public bool IsUnhandledException { get; private set; } - public string LogPath { get; private set; } + public string LogFilePath { get; private set; } public string BugReportPath { get; private set; } - public ErrorForm(Exception error, string logPath, string bugReportPath) : this(error.Message, error.ToString(), logPath, bugReportPath) + public ErrorForm(Exception error, string logFilePath, string bugReportPath) : this(error.Message, error.ToString(), logFilePath, bugReportPath) { } - public ErrorForm(string errorTitle, string errorMessage, string logPath, string bugReportPath, bool unhandledException = true) + public ErrorForm(string errorTitle, string errorMessage, string logFilePath, string bugReportPath, bool unhandledException = true) { InitializeComponent(); ShareXResources.ApplyTheme(this); IsUnhandledException = unhandledException; - LogPath = logPath; + LogFilePath = logFilePath; BugReportPath = bugReportPath; if (IsUnhandledException) @@ -58,7 +58,7 @@ public ErrorForm(string errorTitle, string errorMessage, string logPath, string txtException.SelectionStart = txtException.TextLength; btnSendBugReport.Visible = !string.IsNullOrEmpty(BugReportPath); - btnOpenLogFile.Visible = !string.IsNullOrEmpty(LogPath) && File.Exists(LogPath); + btnOpenLogFile.Visible = !string.IsNullOrEmpty(LogFilePath) && File.Exists(LogFilePath); btnContinue.Visible = IsUnhandledException; btnClose.Visible = IsUnhandledException; btnOK.Visible = !IsUnhandledException; @@ -76,7 +76,7 @@ private void btnSendBugReport_Click(object sender, EventArgs e) private void btnOpenLogFile_Click(object sender, EventArgs e) { - FileHelpers.OpenFile(LogPath); + FileHelpers.OpenFile(LogFilePath); } private void btnContinue_Click(object sender, EventArgs e) diff --git a/ShareX.HelpersLib/Logger.cs b/ShareX.HelpersLib/Logger.cs index 88e526495..a53b2337a 100644 --- a/ShareX.HelpersLib/Logger.cs +++ b/ShareX.HelpersLib/Logger.cs @@ -55,9 +55,12 @@ public Logger() public Logger(string logFilePath) { - FileWrite = true; - LogFilePath = logFilePath; - FileHelpers.CreateDirectoryFromFilePath(LogFilePath); + if (!string.IsNullOrEmpty(logFilePath)) + { + FileWrite = true; + LogFilePath = logFilePath; + FileHelpers.CreateDirectoryFromFilePath(LogFilePath); + } } protected void OnMessageAdded(string message) diff --git a/ShareX/CleanupManager.cs b/ShareX/CleanupManager.cs index 5a1f12c3b..8747191a2 100644 --- a/ShareX/CleanupManager.cs +++ b/ShareX/CleanupManager.cs @@ -74,16 +74,19 @@ public static void CleanupAsync() private static void CleanupFolder(string folderPath, string fileNamePattern, int keepFileCount) { - DirectoryInfo directoryInfo = new DirectoryInfo(folderPath); - - IEnumerable files = directoryInfo.GetFiles(fileNamePattern). - OrderByDescending(f => f.LastWriteTime.Year <= 1601 ? f.CreationTime : f.LastWriteTime).Skip(keepFileCount); - - foreach (FileInfo file in files) + if (Directory.Exists(folderPath)) { - file.Delete(); + DirectoryInfo directoryInfo = new DirectoryInfo(folderPath); - DebugHelper.WriteLine($"File deleted: {file.FullName}"); + IEnumerable files = directoryInfo.GetFiles(fileNamePattern). + OrderByDescending(f => f.LastWriteTime.Year <= 1601 ? f.CreationTime : f.LastWriteTime).Skip(keepFileCount); + + foreach (FileInfo file in files) + { + file.Delete(); + + DebugHelper.WriteLine($"File deleted: {file.FullName}"); + } } } diff --git a/ShareX/Program.cs b/ShareX/Program.cs index 9f098ada3..86a06128d 100644 --- a/ShareX/Program.cs +++ b/ShareX/Program.cs @@ -209,13 +209,16 @@ public static string LogsFilePath { get { + if (SystemOptions.DisableLogging) + { + return null; + } + string fileName = string.Format("ShareX-Log-{0:yyyy-MM}.txt", DateTime.Now); return Path.Combine(LogsFolder, fileName); } } - public static string RequestLogsFilePath => Path.Combine(LogsFolder, "ShareX-Request-Logs.txt"); - public static string ScreenshotsParentFolder { get @@ -510,7 +513,6 @@ private static void CreateParentFolders() { FileHelpers.CreateDirectory(SettingManager.BackupFolder); FileHelpers.CreateDirectory(ImageEffectsFolder); - FileHelpers.CreateDirectory(LogsFolder); FileHelpers.CreateDirectory(ScreenshotsParentFolder); FileHelpers.CreateDirectory(ToolsFolder); } @@ -685,6 +687,7 @@ private static void DebugWriteFlags() if (IgnoreHotkeyWarning) flags.Add(nameof(IgnoreHotkeyWarning)); if (SystemOptions.DisableUpdateCheck) flags.Add(nameof(SystemOptions.DisableUpdateCheck)); if (SystemOptions.DisableUpload) flags.Add(nameof(SystemOptions.DisableUpload)); + if (SystemOptions.DisableLogging) flags.Add(nameof(SystemOptions.DisableLogging)); if (PuushMode) flags.Add(nameof(PuushMode)); string output = string.Join(", ", flags); diff --git a/ShareX/SystemOptions.cs b/ShareX/SystemOptions.cs index fac6c0eec..e3cefef88 100644 --- a/ShareX/SystemOptions.cs +++ b/ShareX/SystemOptions.cs @@ -35,12 +35,14 @@ public static class SystemOptions public static bool DisableUpdateCheck { get; private set; } public static bool DisableUpload { get; private set; } + public static bool DisableLogging { get; private set; } public static string PersonalPath { get; private set; } public static void UpdateSystemOptions() { DisableUpdateCheck = GetSystemOptionBoolean("DisableUpdateCheck"); DisableUpload = GetSystemOptionBoolean("DisableUpload"); + DisableLogging = GetSystemOptionBoolean("DisableLogging"); PersonalPath = GetSystemOptionString("PersonalPath"); }