NLog を介してロギングを実装しようとしていますが、注意を必要とするコードの匂いがいくつかありますが、現在、知識が限られているため、それらを処理する方法がわかりません。
ここに私が好きではないものがあります
まず、NLog の実際の実装を、DI と共に使用するインターフェイスの背後に隠しました。そのクラスはシングルトンです。
現在、できるだけ多くの情報をログに記録しようとしています。これは、ビジネス オブジェクトのほぼすべてのメソッドからロガーを呼び出しており、Logging クラスで作成している依存関係が気に入らないことを意味します。メソッドを直接呼び出すのではなく、すべてのメソッドからログを記録するより良い方法はありますか? ここで、ロギング インターフェイス メソッドを変更すると、Open Closed Principal に違反していると思います。すべての地獄が解き放たれ、その変化はほとんどすべての方法で波及します.
第二に、より恐ろしい部分は、UserID、ProductCode などの場合に、ロガーに追加情報を渡す必要があることです。その情報をパラメーターとしてロガー クラスに渡すと、その道を考えたくありません。 .. 経験豊富な人は、これらのシナリオにどのように対処しますか?
フィードバックをお寄せください。