Переключение логгирования текстовых файлов в log4net

В моем веб-приложении я хочу иметь возможность включать или отключать регистрацию текстового файла, есть ли способ в log4net для этого?

Прямо сейчас я делаю это в своем файле log4net.config, но это заставляет меня думать, что он будет постоянно регистрироваться в обоих местах:

<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
  <param name="ApplicationName" value="Lending Service" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %newline %exception"  />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="INFO"/>
    <levelMax value="FATAL"/>
  </filter> 
</appender>

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="mylogfile.txt"/>
  <appendToFile value="true"/>
  <rollingStyle value="Size"/>
  <maxSizeRollBackups value="5"/>
  <maximumFileSize value="10MB"/>
  <staticLogFileName value="true"/>

  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
  </layout>

</appender>

<root>
  <level value="DEBUG"/>
  <appender-ref ref="RollingFileAppender"/>
  <level value="ALL"/>
  <appender-ref ref="EventLogAppender" />
</root>

ИЗМЕНИТЬ. Я ищу способ сделать это с помощью параметра .config, независимо от того, нужно ли это добавить в файл log4net.config или web.config.


person Him_Jalpert    schedule 23.03.2015    source источник


Ответы (1)


Я не знаю о web.config, но если вы добавите следующую строку в свой appender для log4net.config, она должна работать.

<threshold value="OFF"/>

Пока значение больше отправляемой вами записи, оно не будет отображаться в журнале (т.е. value = "WARN" не будет регистрировать запись для DEBUG / INFO.) Затем вы можете изменить его на "OFF" чтобы подавить любое ведение журнала.

person Capellan    schedule 23.03.2015
comment
Именно то, что я искал! Спасибо - person Him_Jalpert; 23.03.2015
comment
Log4net по-прежнему требует перезапуска, чтобы принять какие-либо изменения конфигурации? - person hometoast; 23.03.2015
comment
Похоже, перезагрузка не требуется. По крайней мере, в тестовом приложении WinForm для параметра Watch установлено значение True, и он принимает изменения во время работы приложения. ‹Сборка: log4net.Config.XmlConfigurator (ConfigFile: = log.config, Watch: = True)› - person Capellan; 23.03.2015