//using System;
//using Domain;
//using Microsoft.AspNetCore;
//using Microsoft.AspNetCore.Hosting;
//using Microsoft.Extensions.Logging;
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((ILoggingBuilder logging) =>
{
logging.ClearProviders();
//logging.AddConsole();
logging.AddProvider(new CustomLoggerProvider());
})
.UseStartup<Startup>()
.Build();
}
public class CustomLogger : ILogger
{
public IDisposable BeginScope<TState>(TState state) => default;
public bool IsEnabled(LogLevel logLevel) => true;
public void Log<TState>(
LogLevel logLevel,
EventId eventId,
TState state,
Exception exception,
Func<TState, Exception, string> formatter)
{
if (!IsEnabled(logLevel)) return;
DomainPorts.Logger.Log(ConvertLogLevel(logLevel), formatter(state, exception), exception);
}
private static DNA.Shared.Logging.LogLevel ConvertLogLevel(LogLevel logLevel)
{
switch (logLevel)
{
case LogLevel.Trace: return DNA.Shared.Logging.LogLevel.Debug;
case LogLevel.Debug: return DNA.Shared.Logging.LogLevel.Debug;
case LogLevel.Information:
return DNA.Shared.Logging.LogLevel.Info;
case LogLevel.Warning:
return DNA.Shared.Logging.LogLevel.Warning;
case LogLevel.Error:
return DNA.Shared.Logging.LogLevel.Error;
case LogLevel.Critical:
return DNA.Shared.Logging.LogLevel.Fatal;
case LogLevel.None:
default:
return DNA.Shared.Logging.LogLevel.Info;
}
}
}
public sealed class CustomLoggerProvider : ILoggerProvider
{
private static readonly CustomLogger logger = new();
public ILogger CreateLogger(string categoryName) => logger;
public void Dispose() { }
}551600cookie-checkDotNet API Custom Logging