我有 ASP.NET 服務器。我想記錄致命錯誤,導致服務器崩潰。并將有關此致命錯誤的一些資訊保存在資料庫中。我應該使用什么?我想過IHostApplicationLifetime,但它用于正常關機而不是致命錯誤。
uj5u.com熱心網友回復:
如果你使用 serilog 你可以做這樣的事情
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Warning)
.MinimumLevel.Override("Microsoft.EntityFrameworkCore",LogEventLevel.Warning)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate)
.WriteTo.File(new JsonFormatter(),"\logs\serilog.json", shared: true)
.CreateLogger();
try
{
Log.Information("Starting up");
CreateHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Application start-up failed");
}
finally
{
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseSerilog();
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/497170.html
