c# - 如何在初始设置后将日志接收器添加到 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 执行类似操作的正确方法是什么?
解决方案
推荐阅读
- redis - redis集群TPS太低了,只有8
- node.js - 在反应中将“缓冲区64 61 74 61 3a 69 6d 61 67 65 2f”转换为img src
- ajax - ajax 删除函数不会调用控制器中的相关操作
- browser - 如何在 localhost 上测试 Janus 视频会议
- opencv - OpenVX 可以用于 OpenCV 功能吗?
- angular - iframe 在 kolkov 角度编辑器中不起作用
- javascript - 如果有奇数个组件,有什么想法可以在左侧显示一个组件吗?
- javascript - javascript中的多维数组
- javascript - 如果数据包含某些特殊字符,则将 html 数据转换为 csv 无效
- php - 根据 2 个不同的符号将字符串拆分为 2 个不同的字符串