カスタムPatternLayoutConverterの実装に同意します。ここでは例のカップル:
この1つは出力にSystem.Diagnostics.Trace.CorrelationManager.ActivityIdを追加します。
public class ActivityIdLayoutConverter : PatternLayoutConverter
{
protected override void Convert(System.IO.TextWriter writer, LoggingEvent loggingEvent)
{
writer.Write(Trace.CorrelationManager.ActivityId.ToString());
}
}
この1がパラメータ化された(それは使用することができますキーを設定することができます私は、キーの値を取ることができPatternLayoutConverterの作成について尋ねた質問に
class KeyLookupPatternConverter : PatternLayoutConverter
{
protected override void Convert(System.IO.TextWriter writer, LoggingEvent loggingEvent)
{
string setting;
//Option is the key name specified in the config file
if (SomeDictionaryWithYourValues.TryGetValue(Option, out setting))
{
writer.Write(setting);
}
}
}
Here is a link:GDCまたはMDCに類似) - 辞書から値を取得します。 log4netとNLogの設定方法と設定方法を示しています。
また、log4netロガーをラップすることもできますし、ラッパーの "Log"メソッドで入力メッセージを変更することもできます。また、カスタム値をGlobalDiagnosticContext.PropertiesまたはThreadDiagnosticContext.Propertiesに配置し、通常のプロパティトークンメソッドを介して出力されます。
MSエンタープライズライブラリロギングアプリケーションブロックを見ましたか? – mcass20
いいえ、私たちはlog4netを数年間使っており、満足しています。 – Amy
各ログメッセージにどのような情報を追加したいかについての詳細情報が役立ちます。あなたの設定ファイルにいくつかの "静的な"テキストを設定しますか?追加するテキストは、実行時に厳密に決定されますか?現在メッセージにメッセージを追加する方法のサンプルコードがありますか(おそらくlog4netの呼び出しサイトですか?) – wageoghe