Updated
This commit is contained in:
@@ -12,7 +12,7 @@ namespace EonaCat.Logger.EonaCatCoreLogger.Internal
|
||||
// This file is part of the EonaCat project(s) which is released under the Apache License.
|
||||
// See the LICENSE file or go to https://EonaCat.com/License for full license details.
|
||||
|
||||
public abstract class BatchingLoggerProvider : ILoggerProvider
|
||||
public abstract class BatchingLoggerProvider : ILoggerProvider, IDisposable
|
||||
{
|
||||
protected DateTimeOffset CurrentDateTimeOffset => UseLocalTime ? DateTimeOffset.Now : DateTimeOffset.UtcNow;
|
||||
protected DateTime CurrentDateTme => UseLocalTime ? DateTime.Now : DateTime.UtcNow;
|
||||
@@ -144,9 +144,13 @@ namespace EonaCat.Logger.EonaCatCoreLogger.Internal
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
#pragma warning disable CS4014
|
||||
StopAsync();
|
||||
#pragma warning restore CS4014
|
||||
while (!_messageQueue.IsEmpty)
|
||||
{
|
||||
_messageQueue.TryDequeue(out _);
|
||||
}
|
||||
|
||||
StopAsync().GetAwaiter().GetResult();
|
||||
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -84,6 +84,10 @@ namespace EonaCat.Logger.Managers
|
||||
|
||||
private void CreateLogger()
|
||||
{
|
||||
// Dispose of previous ServiceProvider if it exists
|
||||
(LoggerProvider as IDisposable)?.Dispose();
|
||||
(LoggerFactory as IDisposable)?.Dispose();
|
||||
|
||||
IServiceCollection serviceCollection = new ServiceCollection();
|
||||
serviceCollection.AddLogging(builder => builder.SetMinimumLevel(Settings.MaxLogType.ToLogLevel()).AddEonaCatFileLogger(configuration =>
|
||||
{
|
||||
@@ -104,8 +108,12 @@ namespace EonaCat.Logger.Managers
|
||||
LoggerProvider = serviceProvider.GetService<ILoggerProvider>();
|
||||
LoggerFactory = serviceProvider.GetService<ILoggerFactory>();
|
||||
Logger = LoggerFactory.CreateLogger(Settings.Id);
|
||||
|
||||
// Dispose of the current ServiceProvider
|
||||
(serviceProvider as IDisposable)?.Dispose();
|
||||
}
|
||||
|
||||
|
||||
private async Task InternalWriteAsync(DateTime dateTime, string message, ELogType logType = ELogType.INFO, bool? writeToConsole = null, bool? sendToSyslogServers = null, bool? sendToSplunkServers = null, string customSplunkSourceType = null, bool? sendToGrayLogServers = null, string grayLogFacility = null, string grayLogSource = null, string grayLogVersion = "1.1")
|
||||
{
|
||||
if (string.IsNullOrEmpty(message) || logType == ELogType.NONE || (int)logType >= (int)Settings.MaxLogType)
|
||||
|
||||
Reference in New Issue
Block a user