log4net - разные лог-файлы для сборки - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть приложение, которое загружает подключаемые модули с отражением.Приложение определяет log4net-log-appender в app.config как:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="logs\xxx.log" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="1MB" />
  <staticLogFileName value="true" />
  <threshold value="DEBUG" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger{2} - %message%newline" />
  </layout>
</appender>

Я получаю Logger в коде как:

private static readonly ILog log = LogManager.GetLogger(typeof(Indexer));

Теперь я ищуспособ объявления разных лог-файлов для каждого модуля (сборки), который загружается как плагин с отражением.

Первая проблема заключается в том, что модули используют Business-Library-Classes вместе (они находятся в сборке, которая используется для всех модулей), которая также генерирует записи журнала.Эти записи также должны быть вставлены в лог-файл модуля.

Вторая проблема заключается в том, что я не знаю модулей во время разработки.Поэтому я не могу вставить некоторые конфигурации в app.config.

1 Ответ

2 голосов
/ 10 февраля 2012

Вторая проблема в том, что я не знаю модулей во время разработки.Поэтому я не могу вставить некоторые настройки в app.config.

Это показывает, что это может быть невозможно в файле конфигурации.Когда вы добавляете новый плагин, вы можете добавить код для добавления нового аппендера для плагина.

Вот некоторые из них ( code ), которые вдохновят вас:* Вам нужно добавить, что вы хотите регистрировать только плагин-сборку, и, возможно, пропустить их из уже настроенных приложений RollingFileAppender.

...