Я получаю следующее исключение:
Не удалось разрешить параметр 'Microsoft.Extensions.Logging.ILogger logger'
"В данный момент (9/ 28/18), Serilog.AspNetCore не участвует в конфигурации DI / OoC "
Можно ли зарегистрировать Serilog.Core.Logger
как реализацию Microsoft.Extensions.Logging.ILogger
в контейнере Autofac DI дляразрешение в библиотеках классов .NET Core?
Вот моя текущая реализация:
public class Program
{
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
//.WriteTo.MSSqlServer(Configuration.GetConnectionString("LogConnection"), "_logs", columnOptions: columnOptions)
.WriteTo.Console()
//.WriteTo.ApplicationInsightsEvents("<YOUR_APPLICATION_INSIGHTS_KEY>")
.CreateLogger();
try
{
Log.Information("Starting web host");
var host = CreateWebHostBuilder(args).Build();
host.Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog();
}
public class Startup
{
public IServiceProvider ConfigureServices(IServiceCollection services)
{
...
_builder.Register<ILogger>((c, p) =>
{
return new LoggerConfiguration()
.WriteTo.RollingFile(
AppDomain.CurrentDomain.GetData("DataDirectory").ToString() + "/Log-{Date}.txt")
.CreateLogger();
}).SingleInstance();
}
}