首页 > 解决方案 > 如何在初始设置后将日志接收器添加到 Serilog 记录器?

问题描述

我熟悉构建 ASP.NET Core 应用程序,在我的应用程序中执行设置之前,我可以使用引导记录器运行最小记录器...

但是,我现在正在开发一个 .NET Core WPF 应用程序,并且 .CreateBootstrapLogger() 方法在 ASP.NET Core 之外不可用(据我所知)......创建引导记录器的正确方法是什么在我的应用程序中完成初始设置后,我以后可以用另一个记录器替换吗?

要添加代码,我通常在 ASP.NET Core 中执行此操作:

//first add the bootstrap logger
Log.Logger = new LoggerConfiguration()
                    .Enrich.FromLogContext()
                    .WriteTo.Console()
                    .CreateBootstrapLogger();

//perform some additional setup/configuration
//...

//now, after setup, add the final logger
Log.Logger = new LoggerConfiguration()
                        .Enrich.FromLogContext()
                        .Enrich.WithProperty("Source", Environment.MachineName)
                        .Enrich.WithProperty("Username", Environment.UserName)
                        .Enrich.WithProperty("AssemblyVersion", assembly?.Version)
                        .WriteTo.MongoDBCapped(
                            mongoDbLogConnectionSettings.ConnectionString,
                            LogEventLevel.Warning, //only log errors in production
                            collectionName: $"{mongoDbLogConnectionSettings.CollectionName}_{assembly?.Name}"
                        )
                        .CreateLogger();

但同样,这似乎只适用于 ASP.NET Core。使用 .NET WPF 执行类似操作的正确方法是什么?

标签: c#wpfserilog

解决方案


推荐阅读