2011-02-22 13 views
7

私はAppenderSkeletonクラスを拡張してカスタムlog4netアペンダーを実装しました。誰もが求めることができ、完璧に働くことは簡単でした。Log4Net設定から値を取得する

私の問題は、いくつかの値をハードコードしなければならず、コードからアペンダーの設定にそれらを削除したいということです。 log4netは設定方法を知っているので、log4netに設定を依頼する方法があるはずです。

私のアペンダは、このようなものになります:私は私のアペンダの内側にそれを使用することができるようにMyProperty1-3の値を取得する方法

<appender name="MyLogAppender" type="xxx.yyy.zzz.MyLogAppender"> 
     <MyProperty1>property</MyProperty1> 
     <MyProperty2>property</MyProperty2> 
     <MyProperty3>property</MyProperty3> 
</appender> 

を?事前 で

おかげRoalnd

答えて

9

それはあなたが次のことを行うことができますタイプのシンプルなタイプのビットに依存:

次のようにプロパティを定義します。

// the value you assign to the field will be the default value for the property 
private TimeSpan flushInterval = new TimeSpan(0, 5, 0); 

public TimeSpan FlushInterval 
{ 
    get { return this.flushInterval; } 
    set { this.flushInterval = value; } 
} 

をこのすることができます

<appender name="MyLogAppender" type="xxx.yyy.zzz.MyLogAppender"> 
    <flushInterval value="02:45:10" /> 
</appender> 

これは確かに動作しますstring、bool、int、TimeSpanの場合はsです。

注:一部のロジックをアクティブにする必要がある設定(タイマーの作成など)の場合は、ActivateOptionsメソッドでこれを実装できます。

関連する問題