Page 1 of 1

Verwenden von Serilog und Sentry während des ASP.NET -Kernstarts

Posted: 10 Apr 2025, 08:04
by Anonymous
Ich versuche, Fehler zu protokollieren, die während des App -Starts an Sentry geworfen werden. Ich verwende ASP.NET Core 2.1.2 mit Serilog und Sentry. Wenn ich nur Wachposten benutze, scheint es in Ordnung zu funktionieren. < /P>

Code: Select all

WebHost.CreateDefaultBuilder(args)
.UseSentry("dsn")
.UseStartup()
.Build()
.Run();
< /code>
Wenn ich jedoch Serilog hinzufüge, sendet die App während des Starts keine Ereignisse, obwohl sie weiter funktioniert, wenn eine Ausnahme von einer Controller -Aktion geworfen wird. < /p>
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()
.Build()
.Run();
Ich versuche, beide KonfigurationServices zu protokollieren und Methoden in der Startklasse zu konfigurieren:

Code: Select all

public class Startup
{
public Startup(IConfiguration configuration, ILogger logger)
{
Configuration = configuration;
Logger = logger;
}

public IConfiguration Configuration { get; }
public ILogger 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");
}
}
< /code>
Ich denke, es hat etwas mit der Reihenfolge der Initialisierung jedes Loggers zu tun, aber ich habe den Startprozess nicht genug, um eine Lösung oder zumindest eine Erklärung zu finden. Gibt es eine Idee, warum dies passiert und wie könnte ich es beheben?.UseSerilog(
(hostingContext, loggerConfiguration) =>
loggerConfiguration
.Enrich.FromLogContext()
.MinimumLevel.Debug()
.WriteTo.Console()
.WriteTo.Sentry(s => {
s.MinimumBreadcrumbLevel = LogEventLevel.Debug;
s.MinimumEventLevel = LogEventLevel.Error;
s.Dsn = new Dsn(dsn);
}))