From df7a14bd6ebd67919eadfa13406b12f9f6afb4c4 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Mon, 1 Jan 2024 23:10:37 +0100 Subject: [PATCH] Fix exception when writing multiple logs at the same time --- .../Stone_Red-C-Sharp-Utilities-Test.csproj | 4 ++++ .../Logging/LogTarget.cs | 6 ++++-- .../Logging/Logging.cs | 21 ++++++++++++------- .../Stone_Red-C-Sharp-Utilities.csproj | 6 +++--- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/Stone_Red-C-Sharp-Utilities-Test/Stone_Red-C-Sharp-Utilities-Test.csproj b/Stone_Red-C-Sharp-Utilities-Test/Stone_Red-C-Sharp-Utilities-Test.csproj index 0aa3820..c787e0f 100644 --- a/Stone_Red-C-Sharp-Utilities-Test/Stone_Red-C-Sharp-Utilities-Test.csproj +++ b/Stone_Red-C-Sharp-Utilities-Test/Stone_Red-C-Sharp-Utilities-Test.csproj @@ -6,6 +6,10 @@ Stone_Red_C_Sharp_Utilities_Test + + + + diff --git a/Stone_Red-C-Sharp-Utilities/Logging/LogTarget.cs b/Stone_Red-C-Sharp-Utilities/Logging/LogTarget.cs index 629d923..b4b12af 100644 --- a/Stone_Red-C-Sharp-Utilities/Logging/LogTarget.cs +++ b/Stone_Red-C-Sharp-Utilities/Logging/LogTarget.cs @@ -1,9 +1,11 @@ -namespace Stone_Red_C_Sharp_Utilities.Logging +using System; + +namespace Stone_Red_C_Sharp_Utilities.Logging { /// /// Specifies the target of the log message. /// - [System.Flags] + [Flags] public enum LogTarget { /// diff --git a/Stone_Red-C-Sharp-Utilities/Logging/Logging.cs b/Stone_Red-C-Sharp-Utilities/Logging/Logging.cs index 0ae0690..65edc41 100644 --- a/Stone_Red-C-Sharp-Utilities/Logging/Logging.cs +++ b/Stone_Red-C-Sharp-Utilities/Logging/Logging.cs @@ -85,9 +85,13 @@ namespace Stone_Red_C_Sharp_Utilities.Logging public void ClearLogFile(LogSeverity logSeverity) { OutputConfig outputConfig = GetOutputConfig(logSeverity); - if (File.Exists(outputConfig.FilePath)) + + lock (outputConfig) { - File.WriteAllText(outputConfig.FilePath, string.Empty); + if (File.Exists(outputConfig.FilePath)) + { + File.WriteAllText(outputConfig.FilePath, string.Empty); + } } } @@ -111,14 +115,17 @@ namespace Stone_Red_C_Sharp_Utilities.Logging Trace.WriteLine(debugOutput); } - if ((outputConfig.LogTarget & LogTarget.File) == LogTarget.File) + lock (outputConfig) { - if (!File.Exists(outputConfig.FilePath)) + if ((outputConfig.LogTarget & LogTarget.File) == LogTarget.File) { - File.Create(outputConfig.FilePath).Close(); - } + if (!File.Exists(outputConfig.FilePath)) + { + File.Create(outputConfig.FilePath).Close(); + } - File.AppendAllLines(outputConfig.FilePath, new[] { fileOutput }); + File.AppendAllLines(outputConfig.FilePath, new[] { fileOutput }); + } } } diff --git a/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.csproj b/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.csproj index c6540c4..892d271 100644 --- a/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.csproj +++ b/Stone_Red-C-Sharp-Utilities/Stone_Red-C-Sharp-Utilities.csproj @@ -12,9 +12,9 @@ en LICENSE false - 1.0.3.1 - 1.0.3.1 - 1.0.3.1 + 1.0.3.2 + 1.0.3.2 + 1.0.3.2