Да, у вас может быть одна запись в журнале для нескольких пользователей.Пока он соответствует критериям для каждого, он будет использовать каждого приложения.
Например, взять этот раздел конфигурации, он записывает все сообщения в файл, а также записывает предупреждения и ошибки в просмотрщик событий .:
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\MySite"/>
<appendToFile value="true"/>
<datePattern value=".yyyy-MM-dd.\l\o\g"/>
<rollingStyle value="Date"/>
<MaxSizeRollBackups value="14"/>
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%thread] %-5level %logger{1} - %m%n"/>
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<applicationName value="Trading.Web"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%thread] %-5level %logger{1} - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender"/>
<appender-ref ref="EventLogAppender" />
</root>
</log4net>
Итак, это:
_log.Debug("This is a debug message");
Отображается только в файле журнала (поскольку он не соответствует критериям фильтра приложения журнала событий).
Но это:
_log.Error("This is an error message.");
Будет входить как в файл журнала, так и в программу просмотра событий.
ОБНОВЛЕНИЕ : Если у вас есть вопрос о фильтрации, если у вас было:
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<!-- Print only messages of level WARN or above in the namespace Com.Foo -->
<logger name="Com.Foo">
<level value="WARN" />
</logger>
Тогда все вещи в Com.Foo будут регистрироваться, если WARN или выше, но все остальное будет регистрироваться в DEBUG или выше ....