Logger improvements
This commit is contained in:
parent
ecdd922be2
commit
6f4f87ddd9
|
|
@ -19,15 +19,23 @@ public abstract class AcLogWriterBase : IAcLogWriterBase
|
||||||
{
|
{
|
||||||
CategoryName = categoryName ?? "...";
|
CategoryName = categoryName ?? "...";
|
||||||
|
|
||||||
AppType = AcEnv.AppConfiguration.GetEnum<AppType>("AyCode:Logger:AppType");
|
try
|
||||||
|
{
|
||||||
|
AppType = AcEnv.AppConfiguration.GetEnum<AppType>("AyCode:Logger:AppType");
|
||||||
|
|
||||||
//AppType = (AppType)Enum.Parse(typeof(AppType), AcEnv.AppConfiguration["AyCode:Logger:AppType"], true);
|
//AppType = (AppType)Enum.Parse(typeof(AppType), AcEnv.AppConfiguration["AyCode:Logger:AppType"], true);
|
||||||
|
|
||||||
var writerSettings = AcEnv.AppConfiguration.GetSection("AyCode:Logger:LogWriters")
|
var writerSettings = AcEnv.AppConfiguration.GetSection("AyCode:Logger:LogWriters")
|
||||||
.GetChildren()
|
.GetChildren()
|
||||||
.FirstOrDefault(logWriter=> (logWriter["LogWriterType"].ToLower()).Equals(this.GetType().AssemblyQualifiedName, StringComparison.CurrentCultureIgnoreCase));
|
.FirstOrDefault(logWriter => logWriter["LogWriterType"]?.ToLower().Equals(GetType().AssemblyQualifiedName, StringComparison.CurrentCultureIgnoreCase) ?? false);
|
||||||
|
|
||||||
LogLevel = writerSettings.GetEnum<LogLevel>("LogLevel");
|
if (writerSettings != null) LogLevel = writerSettings.GetEnum<LogLevel>("LogLevel");
|
||||||
|
else Console.Error.WriteLine($"Not found appSettings.json LogWriterType! {GetType().Name}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"{GetType().Name}; {ex}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected AcLogWriterBase(AppType appType, LogLevel logLevel, string? categoryName = null)
|
protected AcLogWriterBase(AppType appType, LogLevel logLevel, string? categoryName = null)
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ using System.Runtime.CompilerServices;
|
||||||
using System.Security.AccessControl;
|
using System.Security.AccessControl;
|
||||||
using AyCode.Core.Consts;
|
using AyCode.Core.Consts;
|
||||||
using AyCode.Core.Enums;
|
using AyCode.Core.Enums;
|
||||||
|
using AyCode.Utils.Extensions;
|
||||||
using static System.Net.Mime.MediaTypeNames;
|
using static System.Net.Mime.MediaTypeNames;
|
||||||
|
|
||||||
namespace AyCode.Core.Loggers;
|
namespace AyCode.Core.Loggers;
|
||||||
|
|
@ -27,18 +28,27 @@ public abstract class AcLoggerBase : IAcLoggerBase
|
||||||
AppType = AcEnv.AppConfiguration.GetEnum<AppType>("AyCode:Logger:AppType");
|
AppType = AcEnv.AppConfiguration.GetEnum<AppType>("AyCode:Logger:AppType");
|
||||||
LogLevel = AcEnv.AppConfiguration.GetEnum<LogLevel>("AyCode:Logger:LogLevel");
|
LogLevel = AcEnv.AppConfiguration.GetEnum<LogLevel>("AyCode:Logger:LogLevel");
|
||||||
|
|
||||||
foreach (var logWriter in AcEnv.AppConfiguration.GetSection("AyCode:Logger:LogWriters").GetChildren())
|
foreach (var logWriterSection in AcEnv.AppConfiguration.GetSection("AyCode:Logger:LogWriters").GetChildren())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var logWriterType = Type.GetType(logWriter["LogWriterType"]);
|
Type? logWriterType;
|
||||||
var logWriterLogLevel = logWriter.GetEnum<LogLevel>("LogLevel");
|
var logWriterTypeString = logWriterSection["LogWriterType"];
|
||||||
|
|
||||||
|
if (logWriterTypeString.IsNullOrWhiteSpace()|| (logWriterType = Type.GetType(logWriterTypeString)) == null)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"{GetType().Name}; logWriterTypeString not valid; logWriterTypeString: {logWriterTypeString};");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var logWriterLogLevel = logWriterSection.GetEnum<LogLevel>("LogLevel");
|
||||||
|
|
||||||
LogWriters.Add(Activator.CreateInstance(logWriterType, AppType, logWriterLogLevel, CategoryName) as IAcLogWriterBase);
|
if (Activator.CreateInstance(logWriterType, AppType, logWriterLogLevel, CategoryName) is IAcLogWriterBase logWriter) LogWriters.Add(logWriter);
|
||||||
|
else Console.Error.WriteLine($"{GetType().Name}; Can't create logWriterType instance; logWriterType: {logWriterType?.AssemblyQualifiedName};");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.Error.WriteLine(ex);
|
Console.Error.WriteLine($"{GetType().Name}; {ex}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue