在serilog版本5.0.0中,UseSerilog()扩展被废弃了*用于IWebHostBuilder。但是,我仍然在使用IWebHostBuilder和Startup类(aspnetcore 6),并且IWebHostBuilder不受欢迎。
既然反对意味着未来的删除,那么我应该如何利用Serilog继续前进呢?
参考:“在带有IHostBuilder的平台上将IWebHostBuilder扩展标记为过时”
发布于 2022-03-03 16:32:23
我能够通过切换到IHostBuilder而不是IWebHostBuilder来实现这个功能。在我的例子中,关键是调用ConfigureWebHostDefaults (或者ConfigureWebHost),,然后可以在其中利用IWebHostBuilder )。
通过这种方式,我可以在IHostBuilder上调用IHostBuilder,同时仍然像以前一样使用IWebHostBuilder来使用Startup类。
示例:
public static void Main(string[] args)
{
// temp initial logging
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateBootstrapLogger();
using var app =
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webHostBuilder
=> webHostBuilder.ConfigureAppConfiguration((hostingContext, config) =>
_ = config.SetBasePath(hostingContext.HostingEnvironment.ContentRootPath)
.AddJsonFile("appsettings.json", false, true))
.UseStartup<Startup>())
.UseSerilog(
(hostingContext, loggerConfig) =>
loggerConfig
.ReadFrom.Configuration(hostingContext.Configuration)
.Enrich.FromLogContext(),
writeToProviders: true)
.Build();
app.Run();
}
发布于 2022-04-06 14:35:55
我解决了:
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog();
https://stackoverflow.com/questions/71209486
复制相似问题