This commit is contained in:
Jeroen Saey
2026-01-28 10:35:18 +01:00
parent 155fceeb71
commit 6d8fe8e003
2 changed files with 45 additions and 39 deletions

View File

@@ -13,8 +13,8 @@
<Copyright>EonaCat (Jeroen Saey)</Copyright>
<PackageTags>EonaCat;Logger;EonaCatLogger;Log;Writer;Jeroen;Saey</PackageTags>
<PackageIconUrl />
<Version>1.5.6</Version>
<FileVersion>1.5.6</FileVersion>
<Version>1.5.7</Version>
<FileVersion>1.5.7</FileVersion>
<PackageReadmeFile>README.md</PackageReadmeFile>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<PackageLicenseFile>LICENSE</PackageLicenseFile>

View File

@@ -70,18 +70,21 @@ public abstract class BatchingLoggerProvider : ILoggerProvider, IDisposable
set => _loggerSettings = value;
}
private SemaphoreSlim _writeSemaphore = new SemaphoreSlim(1, 1);
public bool IsStarted { get; set; }
public bool UseMask { get; set; }
public void Dispose()
public async void Dispose()
{
while (!_messageQueue.IsEmpty)
{
Task.Delay(10);
// Do nothing, just wait for the queue to be empty
await Task.Delay(1000);
}
_isDisposing = true;
StopAsync().GetAwaiter().GetResult();
await StopAsync().ConfigureAwait(false);
GC.SuppressFinalize(this);
}
@@ -112,20 +115,23 @@ public abstract class BatchingLoggerProvider : ILoggerProvider, IDisposable
return;
}
lock (_writeLock)
{
WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token).ConfigureAwait(false);
await _writeSemaphore.WaitAsync();
await WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token).ConfigureAwait(false);
_currentBatch.Clear();
}
}
catch
{
// ignored
}
}
Thread.Sleep(10);
finally
{
_writeSemaphore.Release();
}
}
await Task.Delay(500);
}
}
protected async Task WriteStartMessage()
{