Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 使用Microsoft.extensions.loging对MVVMCROSS先前的记录系统有什么好处


使用Microsoft.extensions.loging对MVVMCROSS先前的记录系统有什么好处


使用microsoft.extensions.logging MVVMCross的以前的登录系统提供了一些好处:

1。灵活性和可扩展性:Microsoft.extensions.logging提供了一个抽象层,该图层允许开发人员使用各种记录提供商,例如Serilog,NLOG或LOG4NET。这种灵活性意味着在不更改基础代码的情况下,可以根据项目的需求轻松地将记录框架换成。相比之下,MVVMCross先前的系统更加僵化,需要针对不同提供商的特定实现[1] [2]。

2。依赖注入支持:microsoft.extensions.logging与依赖性注入框架很好地集成在一起,从而更容易地将记录器注入类。这对于单元测试特别有用,因为它允许创建模拟记录仪验证记录行为[7]。 MVVMCROSS还支持用于记录的依赖注入,但是使用Microsoft.extensions.logging在不同框架上提供了更标准化的方法[2]。

3.稳定性和社区支持:Microsoft.extensions.logging是一个广泛采用和稳定的API,由Microsoft和Broad Fload .NET社区支持。这种稳定性可确​​保它将继续维护和更新,从而为项目提供长期可靠性[2] [9]。

4。简化的配置:使用Microsoft.extensions.logging,可以通过AppSettings.json或其他配置文件来管理配置,这简化了与其他记录框架相比的设置过程。当使用Serilog或NLOG等提供商时,这是特别有益的,可以使用JSON [7]配置。

5。避免供应商锁定:通过使用Microsoft.extensions.logging之类的抽象层,开发人员避免将其代码绑定到特定的日志记录框架上。这使得在没有重大代码更改的情况下更容易在不同的记录提供商之间切换,从而减少了供应商的锁定并增加了项目灵活性[9]。

6。可伸缩性和性能:Microsoft.extensions.logging旨在有效地处理高性能记录方案。它支持异步记录,可以针对不同的环境进行优化,使其适用于大规模应用[9]。

总而言之,Microsoft.extensions.logging提供了一种灵活,可扩展且广泛支持的日志记录解决方案,可与依赖项注入和各种记录提供商相结合,使其比MVVMCross在许多开发方案的先前记录系统中成为更好的选择。

引用:
[1] https://developer.vonage.com/en/blog/adaptive-library-library-logging-with-microsoft-extensions-logging-dr
[2] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-static-members-with-microsoft-extensions-logging
[4] https://learn.microsoft.com/en-us/core/core/logging-events-diarostics/extensions-logging
[5] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-logging-work-for-for-full-net-framework
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-logging-setup-class
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-part-part-1-indroduction.html
[10] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[11] https://www.reddit.com/r/dotnet/comments/142fs0y/serilog_vs_microsoft_logger_ilogger/
[12] https://github.com/mvvmcross/mvvmcross/issues/2936