Вы можете настроить эту обязательную настройку в одном файле конфигурации.
Просто используйте выделенные logger
экземпляры, каждый из которых имеет свои appender
экземпляры, которые выводятся в отдельное местоположение.
В вашем веб-сервисе используйте регистратор с именем eg.WebServiceLogger
.
log4net.ILog logger = LogManager.GetLogger("WebServiceLogger");`
Настройте этот регистратор на использование приложения с именем eg.WebServiceAppender
и предоставить ему собственный выходной файл, например.c:\logs\webservice.log
.
Настройка additivity=false
гарантирует, что этот регистратор не будет использовать никаких унаследованных стандартных / корневых приложений.
<logger name="WebServiceLogger" additivity="false">
<level value="ALL" />
<appender-ref ref="WebServiceAppender" />
</logger>
<appender name="WebServiceAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\webservice.log" />
<!-- other settings go here -->
</appender>
Аналогичным образом настройте Global.asax .
log4net.ILog logger = LogManager.GetLogger("GlobalAsaxLogger");
<logger name="GlobalAsaxLogger" additivity="false">
<level value="ALL" />
<appender-ref ref="GlobalAsaxAppender" />
</logger>
<appender name="GlobalAsaxAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\globalasax.log" />
<!-- other settings go here -->
</appender>
Любые другие заявленные регистраторы будут использовать регистратор root
, здесь он пишет аппендеру с именем GeneralAppender
.
Полная конфигурация:
<log4net>
<logger name="WebServiceLogger" additivity="false">
<level value="ALL" />
<appender-ref ref="WebServiceAppender" />
</logger>
<appender name="WebServiceAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\webservice.log" />
<!-- other settings go here -->
</appender>
<logger name="GlobalAsaxLogger" additivity="false">
<level value="ALL" />
<appender-ref ref="GlobalAsaxAppender" />
</logger>
<appender name="GlobalAsaxAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\webservice.log" />
<!-- other settings go here -->
</appender>
<appender name="GeneralAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\general.log" />
<!-- other settings go here -->
</appender>
<root>
<level value="ALL" />
<appender-ref ref="GeneralAppender" />
</root>
</log4net>