クラスタで分散ログにlog4netを使用しようとしています。log4netログにオブジェクトインスタンスIDを追加する
私のソフトウェアスタックは、一意のインスタンスIDを持つクラスタの周りに広がっている独立したエージェントで構成されています。生成されるログにログを記録する各オブジェクトのインスタンスIDを追加したいが、すべての継承されたクラスがすべてのクラスに静的なロガーを追加するベストプラクティスに従うオブジェクトインスタンスIDに同じ値を使用するようにする鉱山のも、基本クラスからクラスを継承すれば、それはので、私は、ロガー名を使用することはできません
private static ILog _Log =LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
以下のような独自のロガーを持っています。また、私が作成するすべてのログにオブジェクトインスタンスIDを追加する必要はなく、logn4netログで自動的に実行されます。
私はロガーコンテキストを使用できますが、インスタンスIDはグローバルではなく、特定のスレッドに属していません。これについてどうすればいいですか?
インスタンスIDを各ログメッセージに追加したくないと言っていますか?あなたがそれを望んでいなければ、どこでそれをしたいですか?あなたがそれを望むなら、あなたはログエントリを書くことを試みているあらゆる場所でその価値を得ることができると思いますか? – IAmTimCorey
ログにオブジェクトIDが必要ですが、ログに記録する必要がありますが、問題は異なる継承レベルのログです。私がC:B:Aで、AとBがそれぞれのタイプに基づいて独自のロガーを持っているならば、クラスCのインスタンスを自分のオブジェクトidでログするそのオブジェクトに対して1回、CBまたはAレベルのすべてのログはそのオブジェクトIDを使用しますか? – iCode