Два экземпляра одной и той же программы настроены для входа в отдельные файлы, вот мой log4net.config:
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%utcdate] %-5level %logger: %message%newline%exception"/>
</layout>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Log/svc-%property{ServiceName}"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="'-'yyyy'-'MM'-'dd'.log'"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%utcdate] %-5level %logger: %message%newline%exception"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="ConsoleAppender"/>
<appender-ref ref="RollingFileAppender"/>
</root>
</log4net>
А вот как я копирую логи:
log = LogManager.GetLogger(ServiceName);
GlobalContext.Properties["ServiceName"] = ServiceName;
XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));
Теперь службы называются такими вещами, как «Сервис1», «Сервис10», «Сервис2».
Когда я запускаю службы 1 и 10, с которыми я тестирую, они оба создают свои файлы журнала:
svc-BettweenSvc1-2011-07-26.log
svc-BettweenSvc10-2011-07-26.log
Но когда запускается вторая служба, журналы с первого начинают добавляться ко второму журналу, и тот больше не используется.
Как я могу правильно разделить файлы журналов в службах Windows, используя log4net?