SerilogDemo.Wpf:使用Serilog的WPF应用程序,但使用LogContext和异步方法时出现问题

时间:2024-05-29 07:17:43
【文件属性】:

文件名称:SerilogDemo.Wpf:使用Serilog的WPF应用程序,但使用LogContext和异步方法时出现问题

文件大小:1.24MB

文件格式:ZIP

更新时间:2024-05-29 07:17:43

C#

SerilogDemo.Wpf 该存储库包含一个使用Serilog进行日志记录的示例WPF应用程序。 创建它的目的是在WPF应用程序的上下文中探索使用Serilog的潜在问题。 此应用程序使用Autofac将记录器注入MainWindow类,该类提供提供SourceContext值以记录事件。 添加了其他值以充实日志语句,但是在不同线程上进行充实时会出现问题。 问题#1-将LogContext.PushProperty与async / await一起使用 遇到的一个问题是,方法完成后,异步调用返回后丢失的值将被推送到LogContext属性中。 从文档中可以很明显地看出,您可以将值推送到上下文中,即使该线程被async / await中断,它们也将持久存在。 但是,如果在等待任务后推送值,则该值将不会持久化回到调用线程。 例如,如果我们查看中的代码,我们会看到它模拟了异步登录过程,在


【文件预览】:
SerilogDemo.Wpf-develop
----SerilogDemo.Wpf()
--------packages.config(286B)
--------App.xaml(377B)
--------App.xaml.cs(2KB)
--------SerilogDemo.Wpf.csproj(5KB)
--------App.config(184B)
--------MainWindow.xaml(856B)
--------Properties()
--------MainWindow.xaml.cs(2KB)
----SerilogDemo.Wpf.sln(990B)
----.gitignore(574B)
----README.md(4KB)
----packages()
--------Serilog.1.5.7()
--------Autofac.3.5.2()
--------AutofacSerilogIntegration.1.0.8()
----.gitattributes(378B)

网友评论