Lassen Sie mich erklären: Ich versuche, Serilog in einen einfachen ASP.NET Core einzubinden Web-API mit der Verwendung einer IHostBuilder-Erweiterung, wie folgt:
Code: Select all
public static void ConfigureSerilog(this IHostBuilder host)
{
host.UseSerilog((ctx, lc) =>
{
lc.MinimumLevel.Debug(); // Set a base minimum level 4
lc.WriteTo.Console();
lc.WriteTo.File(
path: "Logs/log.txt",
rollingInterval: RollingInterval.Day, // Create a new file daily
retainedFileCountLimit: 30, // Retain logs for 30 days
restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Warning // File: Warning and above
);
// Optional: Enrich logs with additional context
lc.Enrich.FromLogContext();
// Override levels for specific namespaces
lc.MinimumLevel.Override("Microsoft", Serilog.Events.LogEventLevel.Warning);
lc.MinimumLevel.Override("System", Serilog.Events.LogEventLevel.Warning);
});
}
Code: Select all
Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateBootstrapLogger();
Log.Information("App starting...");
var builder = WebApplication.CreateBuilder(args);
// App Extension
builder.Host.ConfigureSerilog();
Jetzt habe ich es aufgrund einer unglücklichen Situation eine Zeit lang vermasselt. Die App und die Protokollierung funktionieren ordnungsgemäß.
Aber die Informationen in der Konsole scheinen unvollständig zu sein. Sobald die Anwendung ausgeführt wird, wäre mir ohne Log.Information nicht bewusst, dass die Anwendung ausgeführt wird, da die letzte Nachricht, die ich erhalten würde, die Standardnachricht „Building...“ war.< /p>
Jetzt verstehe ich, dass dies ein kleines Problem ist, aber ich versuche zu verstehen, wie Serilog funktioniert und ob es eine Möglichkeit gibt, die Protokollierung im Allgemeinen so effizient und präzise wie möglich zu gestalten.Wenn jemand weiß, wie ich meine Serilog-Integration verbessern kann, dann Könnte entweder einen Rat, eine Ressource oder ein Tutorial enthalten, ich würde mich sehr darüber freuen.
Vielen Dank für Ihre Zeit.