Common Logging log4net INLINE WATCH

У меня есть следующий app.config в приложении, использующем Common.Logging.Log4net (опущено несколько частей для упрощения примера):

<configuration>
  <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
      ...
      <common>
        <logging>
          <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net1211">
            <arg key="configType" value="INLINE" />
          </factoryAdapter>
        </logging>
      </common>
      <log4net>
        <appender ...
        <root>
          <level value="INFO" />
        </root>
      ...
      </log4net>

Идея состоит в том, чтобы позволить среде выполнения Common Logging настроить log4net автоматически (без атрибутов сборки) и использовать уникальный файл для этой конфигурации, который является app.config приложения.

Хотя с этим INLINE configType я не могу на лету изменить app.config для обновления конфигурации ведения журнала во время выполнения приложения, потому что это поведение достигается FILE-WATCH configType.

Итак, я хочу:

  1. Имейте только один файл конфигурации (app.Config моего приложения)
  2. Не нужно включать атрибут Assembly в AssemblyInfo для настройки log4net
  3. Измените раздел app.Config log4net (например, значение уровня корневого ведения журнала) во время выполнения приложения, и приложение автоматически обновит свою конфигурацию ведения журнала при изменении app.config.

Любая идея, как я мог бы выполнить эти требования, используя Common Logging + Log4net?

0 ответов

Другие вопросы по тегам