我们在.net 6控制台应用程序中使用serilog。下面的代码是示例program.cs。当主机崩溃时,我们如何在配置的记录器中捕获异常?
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
IHost host = Host.CreateDefaultBuilder(args)
.UseSerilog((ctx, lc) => lc
.ReadFrom.Configuration(ctx.Configuration))
.ConfigureServices((context, services) =>
{
services.AddHostedService<Worker>();
})
.Build();
try
{
await host.RunAsync();
}
catch(Exception ex)
{
// Need to log the error
//
throw;
}
可以提供日志吗?
你可以试试这个
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.ConfigureLogging((hostingContext, config) =>
{
config.AddSerilog(new LoggerConfiguration().ReadFrom.Configuration(hostingContext.Configuration).CreateLogger());
})
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseWebRoot("wwwroot");
});
}