Updated
This commit is contained in:
@@ -13,8 +13,8 @@
|
|||||||
<Copyright>EonaCat (Jeroen Saey)</Copyright>
|
<Copyright>EonaCat (Jeroen Saey)</Copyright>
|
||||||
<PackageTags>EonaCat;Logger;EonaCatLogger;Log;Writer;Jeroen;Saey</PackageTags>
|
<PackageTags>EonaCat;Logger;EonaCatLogger;Log;Writer;Jeroen;Saey</PackageTags>
|
||||||
<PackageIconUrl />
|
<PackageIconUrl />
|
||||||
<Version>1.5.6</Version>
|
<Version>1.5.7</Version>
|
||||||
<FileVersion>1.5.6</FileVersion>
|
<FileVersion>1.5.7</FileVersion>
|
||||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||||
|
|||||||
@@ -70,18 +70,21 @@ public abstract class BatchingLoggerProvider : ILoggerProvider, IDisposable
|
|||||||
set => _loggerSettings = value;
|
set => _loggerSettings = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SemaphoreSlim _writeSemaphore = new SemaphoreSlim(1, 1);
|
||||||
|
|
||||||
public bool IsStarted { get; set; }
|
public bool IsStarted { get; set; }
|
||||||
public bool UseMask { get; set; }
|
public bool UseMask { get; set; }
|
||||||
|
|
||||||
public void Dispose()
|
public async void Dispose()
|
||||||
{
|
{
|
||||||
while (!_messageQueue.IsEmpty)
|
while (!_messageQueue.IsEmpty)
|
||||||
{
|
{
|
||||||
Task.Delay(10);
|
// Do nothing, just wait for the queue to be empty
|
||||||
|
await Task.Delay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
_isDisposing = true;
|
_isDisposing = true;
|
||||||
StopAsync().GetAwaiter().GetResult();
|
await StopAsync().ConfigureAwait(false);
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,21 +115,24 @@ public abstract class BatchingLoggerProvider : ILoggerProvider, IDisposable
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
lock (_writeLock)
|
await _writeSemaphore.WaitAsync();
|
||||||
{
|
await WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token).ConfigureAwait(false);
|
||||||
WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token).ConfigureAwait(false);
|
_currentBatch.Clear();
|
||||||
_currentBatch.Clear();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
// ignored
|
// ignored
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_writeSemaphore.Release();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Thread.Sleep(10);
|
await Task.Delay(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected async Task WriteStartMessage()
|
protected async Task WriteStartMessage()
|
||||||
{
|
{
|
||||||
var message = LogHelper.GetStartupMessage();
|
var message = LogHelper.GetStartupMessage();
|
||||||
|
|||||||
Reference in New Issue
Block a user