현재 개발 또는 생산이라는 두 가지 환경에서 실행할 수있는 응용 프로그램을 개발 중입니다. 각각 서로 다른 로깅 인프라를 갖고 싶습니다.생산 및 개발 log4net 구성?
환경은 런타임에 내 .exe로 전달됩니다. 코드를 통해 각각의 애펜더를 활성화/비활성화 할 수 있습니까? 아래 설정에서 조정할 무언가가 있습니까?
this을 기반으로 각 키에 "prod"값과 "dev"값을 부여하는 응용 프로그램 설정의 app.config 파일에 다른 내용이 있으므로 두 개 이상의 구성 파일이 필요하지 않습니다.
<log4net>
<root>
<level value="debug" />
<appender-ref ref="Dev" />
<appender-ref ref="Prod" />
</root>
<appender name="Dev" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="blabla 1" />
<layout type="log4net.Layout.PatternLayout">
<Header value="[Application Start] " />
<Footer value="[Application Exit] " />
<ConversionPattern value="%date (%property{ActiveStatus}) %-5level [%2thread] %-20.20logger{1} %message%newline" />
</layout>
</appender>
<appender name="Prod" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="blabla 2" />
<layout type="log4net.Layout.PatternLayout">
<Header value="[Application Start] " />
<Footer value="[Application Exit] " />
<ConversionPattern value="%date (%property{ActiveStatus}) %-5level [%2thread] %-20.20logger{1} %message%newline" />
</layout>
</appender>
</log4net>
을 그건 그렇고, 당신은 별도의 파일로 바로 물건을 이동할 수 있습니다. http://stackoverflow.com/a/445988/562906 –
sinelaw
런타임에 log4net 구성에 액세스하여 appender 컬렉션을 수정할 수 있습니다. – lnu
어떻게 수행 할 수 있습니까? – Jerome