我正在尝试将应用程序启动期间抛出的错误记录到哨兵。我正在使用带有 Serilog 和 Sentry 的 ASP.NET Core 2.1.2。如果我只使用哨兵,它似乎工作正常。
WebHost.CreateDefaultBuilder(args)
.UseSentry("dsn")
.UseStartup<Startup>()
.Build()
.Run();
但是,如果我添加 Serilog,该应用程序在启动期间不会发送任何事件,但如果控制器操作引发异常,它仍会继续工作。
WebHost.CreateDefaultBuilder(args)
.UseSerilog(
(hostingContext, loggerConfiguration) =>
loggerConfiguration
.Enrich.FromLogContext()
.MinimumLevel.Debug()
.WriteTo.Console()
.WriteTo.Sentry(s => {
s.MinimumBreadcrumbLevel = LogEventLevel.Debug;
s.MinimumEventLevel = LogEventLevel.Error;
}))
.UseSentry("dsn")
.UseStartup<Startup>()
.Build()
.Run();
我正在尝试从Startup 类中的ConfigureServices和方法登录:Configure
public class Startup
{
public Startup(IConfiguration configuration, ILogger<Startup> logger)
{
Configuration = configuration;
Logger = logger;
}
public IConfiguration Configuration { get; }
public ILogger<Startup> Logger { get; }
public void ConfigureServices(IServiceCollection services)
{
Logger.LogError(new Exception("something went wrong while configuring services"), "ERROR");
services
.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
Logger.LogError(new Exception("something went wrong while configuring app"), "ERROR");
}
}
我想这与每个记录器的初始化顺序有关,但我对启动过程的了解不足以提出解决方案或至少是解释。知道为什么会发生这种情况,我该如何解决?
MMMHUHU
相关分类