This commit is contained in:
2022-12-16 12:59:34 +01:00
parent 5d3c85ffd3
commit 795f9807d5
8 changed files with 96 additions and 48 deletions

View File

@@ -24,10 +24,6 @@ namespace EonaCat.Logger.Managers
{
private readonly object _batton = new object();
private DateTime _logDate;
public event LogDelegate OnLog;
public delegate void LogDelegate(LogManager logger, ELogType logLevel, EonaCatLogMessage message);
public ELogType LogType;
private ILoggerProvider LoggerProvider { get; set; }
private ILoggerFactory LoggerFactory { get; set; }
@@ -119,7 +115,15 @@ namespace EonaCat.Logger.Managers
IServiceCollection serviceCollection = new ServiceCollection();
serviceCollection.AddLogging(builder => builder.AddEonaCatFileLogger(configuration =>
{
configuration = Settings.FileLoggerOptions;
configuration.MaxWriteTries = Settings.FileLoggerOptions.MaxWriteTries;
configuration.RetainedFileCountLimit = Settings.FileLoggerOptions.RetainedFileCountLimit;
configuration.FlushPeriod = Settings.FileLoggerOptions.FlushPeriod;
configuration.IsEnabled = Settings.FileLoggerOptions.IsEnabled;
configuration.BatchSize = Settings.FileLoggerOptions.BatchSize;
configuration.FileSizeLimit = Settings.FileLoggerOptions.FileSizeLimit;
configuration.LogDirectory = Settings.FileLoggerOptions.LogDirectory;
configuration.FileNamePrefix = Settings.FileLoggerOptions.FileNamePrefix;
configuration.MaxRolloverFiles = Settings.FileLoggerOptions.MaxRolloverFiles;
}));
var serviceProvider = serviceCollection.BuildServiceProvider();
@@ -178,11 +182,23 @@ namespace EonaCat.Logger.Managers
Write(dateTime, remainder, logType);
}
var EonaCatMessage = new EonaCatLogMessage { DateTime = dateTime, Message = currentMessage, LogType = logType };
OnLog?.Invoke(this, logType, EonaCatMessage);
var EonaCatMessage = new EonaCatLogMessage
{
DateTime = dateTime,
Message = currentMessage,
LogType = logType
};
if (Settings != null)
{
EonaCatMessage.Origin = string.IsNullOrWhiteSpace(Settings.LogOrigin) ? "LogManager" : Settings.LogOrigin;
Settings?.OnLogEvent(EonaCatMessage);
}
Settings?.OnLogEvent(EonaCatMessage);
}
public void Reset() => OnLog = null;
public void Reset() => Settings?.ResetLogEvent();
public LogManager(LoggerSettings settings, string serverIp, int serverPort, string id = "EonaCatLogger")
{
@@ -223,13 +239,16 @@ namespace EonaCat.Logger.Managers
Settings.FileLoggerOptions.LogDirectory = logFolder;
}
if (defaultPrefix)
if (string.IsNullOrWhiteSpace(Settings.FileLoggerOptions.FileNamePrefix))
{
Settings.FileLoggerOptions.FileNamePrefix = "EonaCat";
}
else
{
Settings.FileLoggerOptions.FileNamePrefix = string.Empty;
if (defaultPrefix)
{
Settings.FileLoggerOptions.FileNamePrefix = "EonaCat";
}
else
{
Settings.FileLoggerOptions.FileNamePrefix = string.Empty;
}
}
}