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