Updated packages
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
namespace EonaCat.Logger.Helpers
|
namespace EonaCat.Logger
|
||||||
{
|
{
|
||||||
// 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.
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
public static class DllInfo
|
public static class DllInfo
|
||||||
{
|
{
|
||||||
public const string NAME = "EonaCatLogger";
|
public const string NAME = "EonaCatLogger";
|
||||||
public const string VERSION = "1.0.0";
|
public const string VERSION = "1.1.0";
|
||||||
|
|
||||||
static DllInfo()
|
static DllInfo()
|
||||||
{
|
{
|
||||||
@@ -14,10 +14,10 @@
|
|||||||
#if DEBUG
|
#if DEBUG
|
||||||
isDebug = true;
|
isDebug = true;
|
||||||
#endif
|
#endif
|
||||||
VERSION_NAME = isDebug ? "DEBUG" : "RELEASE";
|
VersionName = isDebug ? "DEBUG" : "RELEASE";
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static string VERSION_NAME { get; }
|
internal static string VersionName { get; }
|
||||||
|
|
||||||
public static string ApplicationName { get; internal set; } = "EonaCatLogger";
|
public static string ApplicationName { get; internal set; } = "EonaCatLogger";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,13 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>
|
<TargetFrameworks>
|
||||||
netstandard2.0;
|
|
||||||
netstandard2.1;
|
netstandard2.1;
|
||||||
net5.0;
|
net5.0;
|
||||||
net6.0;
|
net6.0;
|
||||||
net7.0;
|
net7.0;
|
||||||
</TargetFrameworks>
|
</TargetFrameworks>
|
||||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||||
<Version>1.0.9</Version>
|
<Version>1.1.0</Version>
|
||||||
<Authors>EonaCat (Jeroen Saey)</Authors>
|
<Authors>EonaCat (Jeroen Saey)</Authors>
|
||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
<Company>EonaCat (Jeroen Saey)</Company>
|
<Company>EonaCat (Jeroen Saey)</Company>
|
||||||
@@ -45,7 +44,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
using EonaCat.Logger.Helpers;
|
using System;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
using System;
|
|
||||||
using System.Runtime;
|
|
||||||
|
|
||||||
namespace EonaCat.Logger.Extensions
|
namespace EonaCat.Logger.EonaCatCoreLogger.Extensions
|
||||||
{
|
{
|
||||||
// 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.
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using EonaCat.Logger.Internal;
|
using System;
|
||||||
using System;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger.Internal;
|
||||||
|
|
||||||
namespace EonaCat.Logger
|
namespace EonaCat.Logger.EonaCatCoreLogger
|
||||||
{
|
{
|
||||||
// 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.
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
using EonaCat.Logger.Internal;
|
using System;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger.Internal;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace EonaCat.Logger
|
namespace EonaCat.Logger.EonaCatCoreLogger
|
||||||
{
|
{
|
||||||
// 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.
|
||||||
@@ -27,10 +26,10 @@ namespace EonaCat.Logger
|
|||||||
private readonly int _maxRolloverFiles;
|
private readonly int _maxRolloverFiles;
|
||||||
private readonly int _maxTries;
|
private readonly int _maxTries;
|
||||||
private int _rollOverCount = 0;
|
private int _rollOverCount = 0;
|
||||||
private static readonly object _writeLock = new object();
|
private static readonly object WriteLock = new object();
|
||||||
private static readonly object _rollOverLock = new object();
|
private static readonly object RollOverLock = new object();
|
||||||
private string _logFile;
|
private string _logFile;
|
||||||
private bool rollingOver;
|
private bool _rollingOver;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The file to which log messages should be appended.
|
/// The file to which log messages should be appended.
|
||||||
@@ -95,26 +94,26 @@ namespace EonaCat.Logger
|
|||||||
File.Delete(rollOverFile);
|
File.Delete(rollOverFile);
|
||||||
}
|
}
|
||||||
fileInfo.CopyTo(rollOverFile);
|
fileInfo.CopyTo(rollOverFile);
|
||||||
File.WriteAllText(LogFile, string.Empty);
|
await File.WriteAllTextAsync(LogFile, string.Empty, cancellationToken).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lock (_rollOverLock)
|
lock (RollOverLock)
|
||||||
{
|
{
|
||||||
rollingOver = true;
|
_rollingOver = true;
|
||||||
MoveRolloverLogFiles();
|
MoveRolloverLogFiles();
|
||||||
rollingOver = false;
|
_rollingOver = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (rollingOver)
|
while (_rollingOver)
|
||||||
{
|
{
|
||||||
await Task.Delay(100);
|
await Task.Delay(100, cancellationToken).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
lock (_writeLock)
|
lock (WriteLock)
|
||||||
{
|
{
|
||||||
int tries = 0;
|
int tries = 0;
|
||||||
bool completed = false;
|
bool completed = false;
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
using EonaCat.logger.Managers;
|
using System;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger.Models;
|
||||||
using EonaCat.Logger.Managers;
|
using EonaCat.Logger.Managers;
|
||||||
using EonaCatLogger.EonaCatCoreLogger.Models;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace EonaCat.Logger.Internal
|
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.
|
||||||
@@ -49,18 +48,16 @@ namespace EonaCat.Logger.Internal
|
|||||||
|
|
||||||
_provider.AddMessage(timestamp, message);
|
_provider.AddMessage(timestamp, message);
|
||||||
|
|
||||||
var EonaCatMessage = new EonaCatLogMessage
|
var currentMessage = new EonaCatLogMessage
|
||||||
{
|
{
|
||||||
DateTime = timestamp.DateTime,
|
DateTime = timestamp.DateTime,
|
||||||
Message = message,
|
Message = message,
|
||||||
LogType = logLevel.FromLogLevel()
|
LogType = logLevel.FromLogLevel()
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_loggerSettings != null)
|
if (_loggerSettings == null) return;
|
||||||
{
|
currentMessage.Origin = string.IsNullOrWhiteSpace(_loggerSettings.LogOrigin) ? "BatchingLogger" : _loggerSettings.LogOrigin;
|
||||||
EonaCatMessage.Origin = string.IsNullOrWhiteSpace(_loggerSettings.LogOrigin) ? "BatchingLogger" : _loggerSettings.LogOrigin;
|
_loggerSettings?.OnLogEvent(currentMessage);
|
||||||
_loggerSettings?.OnLogEvent(EonaCatMessage);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
|
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace EonaCat.Logger.Internal
|
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.
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
using EonaCat.Logger.Helpers;
|
using System;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace EonaCat.Logger.Internal
|
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.
|
||||||
@@ -39,9 +38,9 @@ namespace EonaCat.Logger.Internal
|
|||||||
|
|
||||||
protected abstract Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken token);
|
protected abstract Task WriteMessagesAsync(IEnumerable<LogMessage> messages, CancellationToken token);
|
||||||
|
|
||||||
private async Task ProcessLogQueue(object state)
|
private async Task ProcessLogQueueAsync(object state)
|
||||||
{
|
{
|
||||||
await WriteMessagesAsync(new List<LogMessage> { new LogMessage { Message = $"[{DllInfo.ApplicationName}] {DllInfo.ApplicationName} started.{Environment.NewLine}", Timestamp = DateTimeOffset.Now } }, _cancellationTokenSource.Token);
|
await WriteMessagesAsync(new List<LogMessage> { new LogMessage { Message = $"[{DllInfo.ApplicationName}] {DllInfo.ApplicationName} started.{Environment.NewLine}", Timestamp = DateTimeOffset.Now } }, _cancellationTokenSource.Token).ConfigureAwait(false);
|
||||||
while (!_cancellationTokenSource.IsCancellationRequested)
|
while (!_cancellationTokenSource.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
int limit = _batchSize <= 0 ? int.MaxValue : _batchSize;
|
int limit = _batchSize <= 0 ? int.MaxValue : _batchSize;
|
||||||
@@ -57,7 +56,7 @@ namespace EonaCat.Logger.Internal
|
|||||||
bool isBatchWritten = false;
|
bool isBatchWritten = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token);
|
await WriteMessagesAsync(_currentBatch, _cancellationTokenSource.Token).ConfigureAwait(false);
|
||||||
isBatchWritten = true;
|
isBatchWritten = true;
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@@ -71,9 +70,9 @@ namespace EonaCat.Logger.Internal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await IntervalAsync(_interval, _cancellationTokenSource.Token);
|
await IntervalAsync(_interval, _cancellationTokenSource.Token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
await WriteMessagesAsync(new List<LogMessage> { new LogMessage { Message = $"[{DllInfo.ApplicationName}] {DllInfo.ApplicationName} stopped.{Environment.NewLine}", Timestamp = DateTimeOffset.Now } }, _cancellationTokenSource.Token);
|
await WriteMessagesAsync(new List<LogMessage> { new LogMessage { Message = $"[{DllInfo.ApplicationName}] {DllInfo.ApplicationName} stopped.{Environment.NewLine}", Timestamp = DateTimeOffset.Now } }, _cancellationTokenSource.Token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual Task IntervalAsync(TimeSpan interval, CancellationToken cancellationToken)
|
protected virtual Task IntervalAsync(TimeSpan interval, CancellationToken cancellationToken)
|
||||||
@@ -92,18 +91,18 @@ namespace EonaCat.Logger.Internal
|
|||||||
|
|
||||||
_cancellationTokenSource = new CancellationTokenSource();
|
_cancellationTokenSource = new CancellationTokenSource();
|
||||||
_outputTask = Task.Factory.StartNew(
|
_outputTask = Task.Factory.StartNew(
|
||||||
ProcessLogQueue,
|
ProcessLogQueueAsync,
|
||||||
null,
|
null,
|
||||||
TaskCreationOptions.LongRunning);
|
TaskCreationOptions.LongRunning);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Stop()
|
private async Task StopAsync()
|
||||||
{
|
{
|
||||||
_cancellationTokenSource.Cancel();
|
_cancellationTokenSource.Cancel();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_outputTask.Wait(_interval);
|
await _outputTask.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
catch (TaskCanceledException)
|
catch (TaskCanceledException)
|
||||||
{
|
{
|
||||||
@@ -115,7 +114,9 @@ namespace EonaCat.Logger.Internal
|
|||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Stop();
|
#pragma warning disable CS4014
|
||||||
|
StopAsync();
|
||||||
|
#pragma warning restore CS4014
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace EonaCat.Logger.Internal
|
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.
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
using EonaCat.Logger;
|
using System;
|
||||||
using EonaCat.Logger.Helpers;
|
using EonaCat.Logger.Helpers;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace EonaCatLogger.EonaCatCoreLogger.Models
|
namespace EonaCat.Logger.EonaCatCoreLogger.Models
|
||||||
{
|
{
|
||||||
// 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.
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
namespace EonaCat.Extensions
|
namespace EonaCat.Logger.Extensions
|
||||||
{
|
{
|
||||||
// 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 class OffsetStream : Stream
|
public class OffsetStream : Stream
|
||||||
{
|
{
|
||||||
private const int BUFFERSIZE = 4096;
|
private const int BufferSize = 4096;
|
||||||
|
|
||||||
public OffsetStream(Stream stream, long offset = 0, long length = 0, bool readOnly = false, bool ownStream = false)
|
public OffsetStream(Stream stream, long offset = 0, long length = 0, bool readOnly = false, bool ownStream = false)
|
||||||
{
|
{
|
||||||
@@ -230,7 +230,7 @@ namespace EonaCat.Extensions
|
|||||||
|
|
||||||
public void WriteTo(Stream stream)
|
public void WriteTo(Stream stream)
|
||||||
{
|
{
|
||||||
WriteTo(stream, BUFFERSIZE);
|
WriteTo(stream, BufferSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void WriteTo(Stream stream, int bufferSize)
|
public void WriteTo(Stream stream, int bufferSize)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace EonaCat.Logger.Helpers
|
|||||||
|
|
||||||
public static Dictionary<T, string> Names { get; }
|
public static Dictionary<T, string> Names { get; }
|
||||||
|
|
||||||
public static Dictionary<string, T> Values { get; private set; }
|
public static Dictionary<string, T> Values { get; }
|
||||||
|
|
||||||
public static string ToString(T value)
|
public static string ToString(T value)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,23 +1,20 @@
|
|||||||
using EonaCat.Logger;
|
using System;
|
||||||
using EonaCat.Logger.Managers;
|
|
||||||
using EonaCat.Logger.Syslog;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using EonaCat.Logger.Syslog;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace EonaCat.logger.Managers
|
namespace EonaCat.Logger.Managers
|
||||||
{
|
{
|
||||||
public static class LogHelper
|
public static class LogHelper
|
||||||
{
|
{
|
||||||
private static readonly object _fileLock = new object();
|
private static readonly object FileLock = new object();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Format a message with the specified header
|
/// Format a message with the specified header
|
||||||
@@ -204,7 +201,7 @@ namespace EonaCat.logger.Managers
|
|||||||
|
|
||||||
internal static void SendFile(ILogger logger, LoggerSettings settings, ELogType logType, string message, int maxTries = 3)
|
internal static void SendFile(ILogger logger, LoggerSettings settings, ELogType logType, string message, int maxTries = 3)
|
||||||
{
|
{
|
||||||
lock (_fileLock)
|
lock (FileLock)
|
||||||
{
|
{
|
||||||
if (logger == null) return;
|
if (logger == null) return;
|
||||||
if (settings == null) return;
|
if (settings == null) return;
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
using EonaCat.logger.Managers;
|
using EonaCat.Logger.Exceptions;
|
||||||
using EonaCat.Logger.Exceptions;
|
|
||||||
using EonaCat.Logger.Extensions;
|
|
||||||
using EonaCat.Logger.Helpers;
|
using EonaCat.Logger.Helpers;
|
||||||
using EonaCat.Logger.Syslog;
|
using EonaCat.Logger.Syslog;
|
||||||
using EonaCatLogger.EonaCatCoreLogger.Models;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
using System;
|
||||||
@@ -11,6 +8,9 @@ using System.Collections.Generic;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger.Extensions;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger.Models;
|
||||||
|
|
||||||
namespace EonaCat.Logger.Managers
|
namespace EonaCat.Logger.Managers
|
||||||
{
|
{
|
||||||
@@ -37,8 +37,8 @@ namespace EonaCat.Logger.Managers
|
|||||||
private bool _disposed;
|
private bool _disposed;
|
||||||
private static LogManager _instance;
|
private static LogManager _instance;
|
||||||
private LoggerSettings _settings;
|
private LoggerSettings _settings;
|
||||||
private CancellationTokenSource _TokenSource = new CancellationTokenSource();
|
private readonly CancellationTokenSource _tokenSource = new CancellationTokenSource();
|
||||||
private CancellationToken _Token;
|
private CancellationToken _token;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Default Logger Instance with it's default configuration
|
/// Default Logger Instance with it's default configuration
|
||||||
@@ -84,7 +84,7 @@ namespace EonaCat.Logger.Managers
|
|||||||
if (disposing)
|
if (disposing)
|
||||||
{
|
{
|
||||||
StopLogging();
|
StopLogging();
|
||||||
_TokenSource.Cancel();
|
_tokenSource.Cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
_disposed = true;
|
_disposed = true;
|
||||||
@@ -92,7 +92,7 @@ namespace EonaCat.Logger.Managers
|
|||||||
|
|
||||||
private void StartNewLog()
|
private void StartNewLog()
|
||||||
{
|
{
|
||||||
if (_TokenSource.IsCancellationRequested)
|
if (_tokenSource.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -180,7 +180,7 @@ namespace EonaCat.Logger.Managers
|
|||||||
Write(dateTime, remainder, logType, writeToConsole);
|
Write(dateTime, remainder, logType, writeToConsole);
|
||||||
}
|
}
|
||||||
|
|
||||||
var EonaCatMessage = new EonaCatLogMessage
|
var logMessage = new EonaCatLogMessage
|
||||||
{
|
{
|
||||||
DateTime = dateTime,
|
DateTime = dateTime,
|
||||||
Message = currentMessage,
|
Message = currentMessage,
|
||||||
@@ -189,11 +189,11 @@ namespace EonaCat.Logger.Managers
|
|||||||
|
|
||||||
if (Settings != null)
|
if (Settings != null)
|
||||||
{
|
{
|
||||||
EonaCatMessage.Origin = string.IsNullOrWhiteSpace(Settings.LogOrigin) ? "LogManager" : Settings.LogOrigin;
|
logMessage.Origin = string.IsNullOrWhiteSpace(Settings.LogOrigin) ? "LogManager" : Settings.LogOrigin;
|
||||||
Settings?.OnLogEvent(EonaCatMessage);
|
Settings?.OnLogEvent(logMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings?.OnLogEvent(EonaCatMessage);
|
Settings?.OnLogEvent(logMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset() => Settings?.ResetLogEvent();
|
public void Reset() => Settings?.ResetLogEvent();
|
||||||
@@ -252,7 +252,7 @@ namespace EonaCat.Logger.Managers
|
|||||||
|
|
||||||
private void SetupLogManager()
|
private void SetupLogManager()
|
||||||
{
|
{
|
||||||
_Token = _TokenSource.Token;
|
_token = _tokenSource.Token;
|
||||||
AppDomain.CurrentDomain.ProcessExit += ProcessExit;
|
AppDomain.CurrentDomain.ProcessExit += ProcessExit;
|
||||||
|
|
||||||
Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress);
|
Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress);
|
||||||
@@ -274,7 +274,7 @@ namespace EonaCat.Logger.Managers
|
|||||||
{
|
{
|
||||||
IsRunning = false;
|
IsRunning = false;
|
||||||
Write(DateTime.Now, $"{DllInfo.ApplicationName} stopped.");
|
Write(DateTime.Now, $"{DllInfo.ApplicationName} stopped.");
|
||||||
Task.Delay(500);
|
Task.Delay(500, _token);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LogManager(string logFolder = null, bool defaultPrefix = true)
|
public LogManager(string logFolder = null, bool defaultPrefix = true)
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger;
|
||||||
|
using EonaCat.Logger.EonaCatCoreLogger.Models;
|
||||||
using EonaCat.Logger.Syslog;
|
using EonaCat.Logger.Syslog;
|
||||||
using EonaCatLogger.EonaCatCoreLogger.Models;
|
|
||||||
|
|
||||||
namespace EonaCat.Logger.Managers
|
namespace EonaCat.Logger.Managers
|
||||||
{
|
{
|
||||||
@@ -27,12 +28,12 @@ namespace EonaCat.Logger.Managers
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return _HeaderFormat;
|
return _headerFormat;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(value)) _HeaderFormat = "";
|
if (string.IsNullOrEmpty(value)) _headerFormat = "";
|
||||||
else _HeaderFormat = value;
|
else _headerFormat = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,12 +44,12 @@ namespace EonaCat.Logger.Managers
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return _TimestampFormat;
|
return _timestampFormat;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(value)) throw new ArgumentNullException(nameof(HeaderFormat));
|
if (string.IsNullOrEmpty(value)) throw new ArgumentNullException(nameof(HeaderFormat));
|
||||||
_TimestampFormat = value;
|
_timestampFormat = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,12 +62,12 @@ namespace EonaCat.Logger.Managers
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return _EnableConsole;
|
return _enableConsole;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (value) _EnableConsole = ConsoleExists();
|
if (value) _enableConsole = ConsoleExists();
|
||||||
else _EnableConsole = false;
|
else _enableConsole = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,12 +138,12 @@ namespace EonaCat.Logger.Managers
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return _MaxMessageLength;
|
return _maxMessageLength;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (value < 32) throw new ArgumentException("Maximum message length must be at least 32.");
|
if (value < 32) throw new ArgumentException("Maximum message length must be at least 32.");
|
||||||
_MaxMessageLength = value;
|
_maxMessageLength = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,10 +152,10 @@ namespace EonaCat.Logger.Managers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string LogOrigin { get; set; }
|
public string LogOrigin { get; set; }
|
||||||
|
|
||||||
private string _HeaderFormat = "{ts} {host} {thread} {sev}";
|
private string _headerFormat = "{ts} {host} {thread} {sev}";
|
||||||
private string _TimestampFormat = "yyyy-MM-dd HH:mm:ss";
|
private string _timestampFormat = "yyyy-MM-dd HH:mm:ss";
|
||||||
private bool _EnableConsole = true;
|
private bool _enableConsole = true;
|
||||||
private int _MaxMessageLength = 1024;
|
private int _maxMessageLength = 1024;
|
||||||
private ColorSchema _colors = new ColorSchema();
|
private ColorSchema _colors = new ColorSchema();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user