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は、Microsoftとより広範な.NETコミュニティによってサポートされている広く採用された安定したAPIです。この安定性により、維持および更新され続けることが保証され、プロジェクトの長期的な信頼性が提供されます[2] [9]。
4。簡素化された構成:microsoft.extensions.loggingを使用すると、構成はappsettings.jsonまたはその他の構成ファイルを介して管理できます。これにより、他のロギングフレームワークと比較してセットアッププロセスが簡素化されます。これは、JSON [7]を使用して構成できるSerilogやNLOGなどのプロバイダーを使用する場合に特に有益です。
5.ベンダーのロックインの回避:Microsoft.extensions.Loggingのような抽象化レイヤーを使用することにより、開発者は特定のロギングフレームワークにコードを結ぶことを避けます。これにより、大幅なコード変更なしで異なるロギングプロバイダーを簡単に切り替え、ベンダーのロックインを減らし、プロジェクトの柔軟性を高めます[9]。
6.スケーラビリティとパフォーマンス:Microsoft.extensions.Loggingは、高性能ロギングシナリオを効率的に処理するように設計されています。非同期ロギングをサポートし、さまざまな環境に最適化することができ、大規模なアプリケーションに適しています[9]。
要約すると、Microsoft.extensions.Loggingは、依存関係の注入およびさまざまな伐採プロバイダーとうまく統合する柔軟でスケーラブルで広くサポートされているロギングソリューションを提供し、多くの開発シナリオ向けのMVVMCrossの以前のロギングシステムよりも優れた選択となっています。
引用:[1] https://developer.vonage.com/en/blog/adaptive-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/ef/ef/core/logging-events-diagnostics/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-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-1-intruction.html
[10] https://www.mvvmcross.com/documentation/fundmentals/viewmodel-lifecycle
[11] https://www.reddit.com/r/dotnet/comments/142fs0y/serilog_vs_microsoft_logger_ilogger/
[12] https://github.com/mvvmcross/mvvmcross/issues/2936