ほとんどの開発者は、使用するログ フレームワーク (log4net、NLog、MS Diag など) が何であれ、次の 2 つのことを行うことを強くお勧めします。
1)シングルトンを介してすべてを送信するのではなく、細分性のためにクラス固有のロガーを実装します 2)ロギングフレームワークのファサードを作成して、実際のフレームワークの選択をマスクします(たとえば、NLogのlog4netをシームレスに交換できるように)
2番目のものは、私がどれだけ賛成しているかわかりませんが、ソリューションを過度に設計する完璧な例のようです. たとえば、アプリケーションを完全にデータベースにとらわれず、任意のデータベース プロバイダーに接続できるように作成できます。しかし、実際にはどのくらいの頻度でそれが必要になるのでしょうか? 95% の確率で、ターゲット データベースの種類を選択し、それを使い続けます。私にとっては、ロギング フレームワークも同じです。私は NLog を選択しました。プロジェクトの存続期間中、それを使用するつもりです。5年以内に切り替える必要がある場合、それらはおそらく他の多くのものも変更する必要があるため、書き換えの一部としてそれを行います.
ただし、最初の項目は有用なアプリケーションがあるようです。この機能を悪用する具体的な例を誰か教えてもらえますか? 実際にそれをどのように実装しますか?なんらかの理由で突然失敗する dataaccess モジュールがあるとします...そのモジュールに焦点を合わせて詳細なログ情報を取得するには、その場でログ設定を変更するにはどうすればよいですか? アプリの実行中にNLogに設定をリロードするように指示するプログラム的な手段ですか?
ありがとう