//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