2

NLog を介してロギングを実装しようとしていますが、注意を必要とするコードの匂いがいくつかありますが、現在、知識が限られているため、それらを処理する方法がわかりません。

ここに私が好きではないものがあります

まず、NLog の実際の実装を、DI と共に使用するインターフェイスの背後に隠しました。そのクラスはシングルトンです。

現在、できるだけ多くの情報をログに記録しようとしています。これは、ビジネス オブジェクトのほぼすべてのメソッドからロガーを呼び出しており、Logging クラスで作成している依存関係が気に入らないことを意味します。メソッドを直接呼び出すのではなく、すべてのメソッドからログを記録するより良い方法はありますか? ここで、ロギング インターフェイス メソッドを変更すると、Open Closed Principal に違反していると思います。すべての地獄が解き放たれ、その変化はほとんどすべての方法で波及します.

第二に、より恐ろしい部分は、UserID、ProductCode などの場合に、ロガーに追加情報を渡す必要があることです。その情報をパラメーターとしてロガー クラスに渡すと、その道を考えたくありません。 .. 経験豊富な人は、これらのシナリオにどのように対処しますか?

フィードバックをお寄せください。

4

2 に答える 2