내 질문은 this one과 비슷하지만 다소 간단한 문맥을 사용합니다. 제 경우에는 여러 명령 행 매개 변수를 동시에 두 번 (최대) 실행할 수있는 단일 응용 프로그램이 있으므로 각 인스턴스는 해당 컨텍스트를 알고 있습니다.log4net을 사용하여 동일한 응용 프로그램의 다른 인스턴스를 다른 파일에 기록하는 방법은 무엇입니까?
app.config 파일은 로깅을 구성하기위한 log4net 섹션을 정의합니다. 물론, 우리는 인스턴스의 런타임에 하나 (선택이 잘 정의하고 모호 됨)을로드 있도록 두 개의 응용 프로그램 인스턴스가 동일한 로그 파일에 기록 할 수 있다는 문제가있다,
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender name="MainAppender" type="log4net.Appender.FileAppender">
<file value="${TMP}\NCAgent.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="DebugAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ERROR" />
<appender-ref ref="MainAppender" />
<level value="INFO"/>
<appender-ref ref="DebugAppender"/>
</root>
</log4net>
그리고 : 여기있다 log4net XmlElement
, 거기에 로그 파일의 이름을 변경하고 XmlConfigurator.Configure(XmlElement)
과부하를 사용하여 log4net을 구성합니다.
나는 우리의 접근 방식을 좋아하지 않으며 더 나은 해결책이 있어야한다고 생각합니다. 어떤 아이디어?
감사합니다.