首先从官方网站http://logging.apache.org/log4net/下载最近版本的log4net组件。在程序中添加对log4net.dll的引用,就可以在程序中使用了。
下一步,编写配置文件,内容如下
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <configSections>
 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
 </configSections>
 <log4net>
 <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
 <root>
 <level value="Debug" name="myLogger"/>
 <appender-ref ref="ADONetAppender"/>
 <appender-ref ref="LogFileAppender" />
 </root>
 <!--定义输出到文件中-->
 <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
 <!--定义文件存放位置-->
<file value="log4netfile.txt" />
 <appendToFile value="true" />
 <rollingStyle value="Date" />
 <datePattern value="yyyyMMdd-HH:mm:ss" />
 <layout type="log4net.Layout.PatternLayout">
 <param name="Header" value="[Header]"/>
 <param name="Footer" value="[Footer]"/>
 <param name="ConversionPattern" value="%d [%t] %-5p %c[%x] - %m%n" />
 </layout>
 <filter type="log4net.Filter.LevelRangeFilter">
 <param name="LevelMin" value="DEBUG" />
 <param name="LevelMax" value="WARN" />
 </filter>
 </appender>
 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
 <layout type="log4net.Layout.PatternLayout">
 <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] -%m%n" />
 </layout>
 </appender>
 </log4net>
</configuration>
以上配置中最重要的就是红色字体部分,设置了日志文件的文件名。
下面是使用代码,log4net可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//+-------------------------------------------------------------------+
//+ FileName: LogExecutor 
//+ File Created: 2012-6-5 9:07:02 
//+-------------------------------------------------------------------+
//+ Purpose: 
//+-------------------------------------------------------------------+
//+ History: 2012-6-5 9:07:02 by JingXiao
//+-------------------------------------------------------------------+
//+ Comment: 
//+-------------------------------------------------------------------+
//+ Creator JingXiao
//+-------------------------------------------------------------------+
[assembly: log4net.Config.DOMConfigurator(Watch = true)]
namespace LogService
{
 public class LogExecutor
 {
 #region Logger Setter
 private static readonly log4net.ILog _log=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 #endregion
 #region 构造函数
 /// <summary>
 /// 构造函数
 /// </summary>
 private LogExecutor()
 {
System.IO.FileInfo configfile = new System.IO.FileInfo(@"LogCfg.config");
 log4net.Config.DOMConfigurator.Configure(configfile);
 }
 #endregion 
 //单例
 public static readonly LogExecutor instance = new LogExecutor();
#region 成员
 /// <summary>
 /// 普通信息写日志
 /// </summary>
 /// <param name="msg">要记录的字符串</param>
 public void WriteInfo(string msg)
 {
 _log.Info(msg);
 }
 /// <summary>
 /// 普通信息写日志(字串拼接模式)
 /// </summary>
 /// <param name="msg">要记录的字符串</param>
 public void WriteInfo(string format,params object[] args)
 {
 string msg = string.Format(format, args);
 _log.Info(msg);
 }
 /// <summary>
 /// 普通异常信息写日志
 /// </summary>
 /// <param name="sourceServiceID">(发生调用的)服务ID</param> 
 /// <param name="logInfo">日志内容</param>
 public void WriteEx(string msg,Exception ex)
 {
 _log.Error(msg,ex);
 } 
 /// <summary>
 /// 
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="ex"></param>
 public void WriteFatalEx(string msg,Exception ex)
 {
 _log.Fatal(msg,ex);
 }
 /// <summary>
 /// 调试信息
 /// </summary>
 /// <param name="msg"></param>
 public void WriteDebugInfo(string msg)
 {
 _log.Debug(msg);
 }
 /// <summary>
 /// 调试信息(字串拼接模式)
 /// </summary>
 /// <param name="format"></param>
 /// <param name="args"></param>
 public void WriteDebugInfo(string format, params object[] args)
 {
 _log.Debug(string.Format(format, args));
 }
 #endregion
 }
}
注意绿色部分一定不能省略,不然的话,代码能跑起来,就是不写入日志文件,擦。
另外红色部分是设置使用我们刚才手写的配置文件,注意,要把配置文件设置为“复制到输出目录”。