log4net的功能非常强大,有多重记录日志的方式,此处着重讲解记录到文件中的使用方式。废话少说,直接进入主题

1.配置文件中加入<configSections>节点,必须是配置文件的第一个节点

<configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>

2.配置log4net节点

<log4net>
    <!--定义输出到文件中-->

    <!--此处若使用type="log4net.Appender.FileAppender"则日志会记录到一个文件中-->
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--定义文件存放位置-->
      <file value="..\LOG\log4netfile" />
      <appendToFile value="true" />
      <!--如果一直输出到同一文件中,则不需要下面代码-->
      <!--文件输出以日期方式滚动-->
      <rollingStyle value="Date" />
      <!--日志文件名称以输出日期命名,可更改其他日期输出方式-->
      <datePattern value="yyyy-MM-dd'.log'" />
      <!--表明输出的日志信息是否一直在同一文件中-->
      <staticLogFileName value="false"/>
      <!--备份文件的最大文件数目-->
      <maxSizeRollBackups value="10" />

      <layout type="log4net.Layout.PatternLayout">
        <!--每条日志末尾的文字说明-->
        <footer value="by jc" />
        <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 记录类:%logger property:[%property{NDC}] - 记录描述:%message%newline" />
      </layout>
    </appender>

    <!--此处省略其它记录日志方式的配置-->
    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    <root>
      <!--文件形式记录日志-->
      <appender-ref ref="LogFileAppender" />
      <!--控制台控制显示日志-->
      <!--<appender-ref ref="ConsoleAppender" />-->
      <!--Windows事件日志-->
      <!--<appender-ref ref="EventLogAppender" />-->
      <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
      <appender-ref ref="AdoNetAppender_Access" />
      -->
    </root>

  </log4net>

3.反射机制中配置log4net配置文件的位置

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "***.exe.config", Watch = true)]

***.exe.config是以上1、2中配置所在文件

4.程序中使用

Ilog Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

using(log4net.NDC.push("logtest"))

{

    Logger.Debug("NDC使用方式")

}

输出

记录时间:2016-04-14 11:54:28,189 线程ID:[10] 日志级别:DEBUG 记录类:***.***property:[logtest] - 记录描述:NDC使用方式