Him_Jalpert
Him_Jalpert

Reputation: 2516

Toggling text file logging in log4net

In my Web app I want to have the ability to toggle text file logging on or off, is there a way within log4net for this to be accomplished?

Right now I'm doing this in my log4net.config file, but this makes me think it's going to log in both places all the time:

<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>

EDIT I'm looking for a way to do this through a .config setting, whether it's something that needs to be added to the log4net.config or the web.config file.

Upvotes: 0

Views: 224

Answers (1)

Capellan
Capellan

Reputation: 700

I don't know about web.config, but if you add the below line into your appender for the log4net.config it should work.

<threshold value="OFF"/>

As long as the value is greater than the entry your sending, it won't show up in the log (i.e. value="WARN" won't log an entry for DEBUG/INFO.) Then you can change it to "OFF" to suppress any logging.

Upvotes: 1

Related Questions