Updated
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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,21 +115,24 @@ public abstract class BatchingLoggerProvider : ILoggerProvider, IDisposable
|
||||
return;
|
||||
}
|
||||
|
||||
lock (_writeLock)
|
||||
{
|
||||
WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token).ConfigureAwait(false);
|
||||
_currentBatch.Clear();
|
||||
}
|
||||
await _writeSemaphore.WaitAsync();
|
||||
await WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token).ConfigureAwait(false);
|
||||
_currentBatch.Clear();
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
finally
|
||||
{
|
||||
_writeSemaphore.Release();
|
||||
}
|
||||
}
|
||||
Thread.Sleep(10);
|
||||
await Task.Delay(500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected async Task WriteStartMessage()
|
||||
{
|
||||
var message = LogHelper.GetStartupMessage();
|
||||
|
||||
Reference in New Issue
Block a user