如何从web.config读取log4Net

时间:2016-12-21 17:36:35

标签: c# log4net

我正在使用log4net执行每日日志记录。 我意识到log4net不支持以这种方式删除旧文件。

我正在尝试编写自己的方法来完成此任务,但我不确定如何从web.config文件中读取log4net设置。

我试过了:

var log4NetData = ConfigurationManager.GetSection("log4net");

但是我得到了这个结果:

  

类型' System.Configuration.ConfigXmlElement'存在于' System.Configuration.dll'和' System.dll'

如何从web.config中读取log4net节点?

1 个答案:

答案 0 :(得分:0)

实际上Log4Net总是可以更新同一个文件(这样就不需要删除它并创建另一个文件)。 我使用log4Net在一小时内记录了相同的文件n次。我的配置:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

的app.config:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>  
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="MyFileAppender" />
    </root>
    <appender name="MyFileAppender" type="log4net.Appender.FileAppender">
      <file value="application.log" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level - %message%newline" />
      </layout>
    </appender>
  </log4net>