Logger improvements
This commit is contained in:
parent
ecdd922be2
commit
6f4f87ddd9
|
|
@ -19,15 +19,23 @@ public abstract class AcLogWriterBase : IAcLogWriterBase
|
|||
{
|
||||
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")
|
||||
.GetChildren()
|
||||
.FirstOrDefault(logWriter=> (logWriter["LogWriterType"].ToLower()).Equals(this.GetType().AssemblyQualifiedName, StringComparison.CurrentCultureIgnoreCase));
|
||||
var writerSettings = AcEnv.AppConfiguration.GetSection("AyCode:Logger:LogWriters")
|
||||
.GetChildren()
|
||||
.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)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using System.Runtime.CompilerServices;
|
|||
using System.Security.AccessControl;
|
||||
using AyCode.Core.Consts;
|
||||
using AyCode.Core.Enums;
|
||||
using AyCode.Utils.Extensions;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
namespace AyCode.Core.Loggers;
|
||||
|
|
@ -27,18 +28,27 @@ public abstract class AcLoggerBase : IAcLoggerBase
|
|||
AppType = AcEnv.AppConfiguration.GetEnum<AppType>("AyCode:Logger:AppType");
|
||||
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
|
||||
{
|
||||
var logWriterType = Type.GetType(logWriter["LogWriterType"]);
|
||||
var logWriterLogLevel = logWriter.GetEnum<LogLevel>("LogLevel");
|
||||
Type? logWriterType;
|
||||
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)
|
||||
{
|
||||
Console.Error.WriteLine(ex);
|
||||
Console.Error.WriteLine($"{GetType().Name}; {ex}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue