Я изо всех сил пытался заставить мою конфигурацию Serilog работать правильно.
Позвольте мне объяснить:
Поэтому я пытался внедрить Serilog в простой веб-API .NET с использованием расширения IHostBuilder. Вот так:
Код: Выделить всё
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);
});
}
Код: Выделить всё
Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateBootstrapLogger();
Log.Information("App starting...");
var builder = WebApplication.CreateBuilder(args);
// App Extension
builder.Host.ConfigureSerilog();
В итоге я немного испортил это из-за неудачной ситуации. Приложение и ведение журнала работают правильно.
Но информация в консоли кажется неполной. После запуска приложения, если бы не Log.Information, я бы не знал, что приложение работает, поскольку последнее сообщение, которое я получил, было сообщением по умолчанию «Здание...».
Теперь я понимаю, что это незначительная проблема, но я пытаюсь понять, как работает Serilog и есть ли способ сделать ведение журнала в целом максимально эффективным и точным.
Итак, если кто-нибудь знает, как я могу сделать свою реализацию Serilog как можно лучше поделитесь советом, ресурсом или учебным пособием.
Буду очень признателен.
Спасибо, что уделили время.
Подробнее здесь: https://stackoverflow.com/questions/793 ... et-web-api
Мобильная версия