2011-02-22 6 views
7

AppenderSkeleton 클래스를 확장하여 사용자 정의 log4net appender를 구현했습니다. 누구나 쉽게 물어볼 수있는만큼 간단했습니다.Log4Net 구성에서 값 가져 오기

내 문제는 내가 몇 가지 값을 하드 코드해야하고 내 코드에서 appender 구성으로 제거하고 싶습니다. log4net은 설정 방법을 알고 있기 때문에 log4net에 설정을 요청하는 방법이 있어야한다고 생각합니다.

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

어떻게 MyProperty1-3의 값이 너무 내이 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> 

이것은 확실히 작동합니다. 문자열, 부울, int 및 TimeSpan에 대한 s입니다.

참고 : 타이머 설정과 같은 몇 가지 로직을 활성화해야하는 경우에는 ActivateOptions 방법으로 구현할 수 있습니다.