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.
|
// 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.
|
// 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 DateTimeOffset CurrentDateTimeOffset => UseLocalTime ? DateTimeOffset.Now : DateTimeOffset.UtcNow;
|
||||||
protected DateTime CurrentDateTme => UseLocalTime ? DateTime.Now : DateTime.UtcNow;
|
protected DateTime CurrentDateTme => UseLocalTime ? DateTime.Now : DateTime.UtcNow;
|
||||||
@@ -144,9 +144,13 @@ namespace EonaCat.Logger.EonaCatCoreLogger.Internal
|
|||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
#pragma warning disable CS4014
|
while (!_messageQueue.IsEmpty)
|
||||||
StopAsync();
|
{
|
||||||
#pragma warning restore CS4014
|
_messageQueue.TryDequeue(out _);
|
||||||
|
}
|
||||||
|
|
||||||
|
StopAsync().GetAwaiter().GetResult();
|
||||||
|
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -84,6 +84,10 @@ namespace EonaCat.Logger.Managers
|
|||||||
|
|
||||||
private void CreateLogger()
|
private void CreateLogger()
|
||||||
{
|
{
|
||||||
|
// Dispose of previous ServiceProvider if it exists
|
||||||
|
(LoggerProvider as IDisposable)?.Dispose();
|
||||||
|
(LoggerFactory as IDisposable)?.Dispose();
|
||||||
|
|
||||||
IServiceCollection serviceCollection = new ServiceCollection();
|
IServiceCollection serviceCollection = new ServiceCollection();
|
||||||
serviceCollection.AddLogging(builder => builder.SetMinimumLevel(Settings.MaxLogType.ToLogLevel()).AddEonaCatFileLogger(configuration =>
|
serviceCollection.AddLogging(builder => builder.SetMinimumLevel(Settings.MaxLogType.ToLogLevel()).AddEonaCatFileLogger(configuration =>
|
||||||
{
|
{
|
||||||
@@ -104,8 +108,12 @@ namespace EonaCat.Logger.Managers
|
|||||||
LoggerProvider = serviceProvider.GetService<ILoggerProvider>();
|
LoggerProvider = serviceProvider.GetService<ILoggerProvider>();
|
||||||
LoggerFactory = serviceProvider.GetService<ILoggerFactory>();
|
LoggerFactory = serviceProvider.GetService<ILoggerFactory>();
|
||||||
Logger = LoggerFactory.CreateLogger(Settings.Id);
|
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")
|
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)
|
if (string.IsNullOrEmpty(message) || logType == ELogType.NONE || (int)logType >= (int)Settings.MaxLogType)
|
||||||
|
|||||||
Reference in New Issue
Block a user