本节将主要在WebSite中,对保存日志在文本文件的基本用法来进行介绍,并结合WebForm的初始化方式区别进行说明,解决方案如下图所示:

log4net进阶手札(二):基本用法_log4net进阶

一、WebSite应用
第1步:配置Web.Config文件,代码如下;

  1. <configuration> 
  2.  <configSections> 
  3.   <section name="log4net"   
  4. type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> 
  5.  </configSections> 
  6.  <log4net> 
  7.   <root> 
  8.    <level value="ALL"/> 
  9.    <appender-ref ref="LogFileAppender"/> 
  10.   </root> 
  11.   <appender name="LogFileAppender" 
  12. type="log4net.Appender.FileAppender"> 
  13.    <param name="File" value="log/website.log"/> 
  14.    <param name="AppendToFile" value="true"/> 
  15.    <layout type="log4net.Layout.PatternLayout"> 
  16.     <param name="ConversionPattern" 
  17. value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt;%n - %m%n"/> 
  18.    </layout> 
  19.   </appender> 
  20.  </log4net> 
  21. …  
  22. </configuration> 

第2步:配置global.asax文件,打开并在Application_Start中添加一行代码,代码如下:

  1. void Application_Start(object sender, EventArgs e)   
  2.  {  
  3.      log4net.Config.XmlConfigurator.Configure();  
  4.  } 

第3步:添加页元素和测试代码,在页面中添加两个按钮,如下图所示:

log4net进阶手札(二):基本用法_log4net进阶_02

测试代码如下图所示:

  1. public partial class _Default : System.Web.UI.Page   
  2. {  
  3.     log4net.ILog log;  
  4.     protected void Page_Load(object sender, EventArgs e)  
  5.     {  
  6.         log = log4net.LogManager.GetLogger(this.GetType());  
  7.     }  
  8.  
  9.     protected void btnInfo_Click(object sender, EventArgs e)  
  10.     {  
  11.         log.Info("log4net info测试 - 彭金华");  
  12.     }  
  13.  
  14.     protected void btnError_Click(object sender, EventArgs e)  
  15.     {  
  16.         Exception ex;  
  17.  
  18.         ex = new Exception("log4net error测试 - 彭金华");  
  19.         log.Error("log4net error测试", ex);  
  20.     }  

第4步:运行查看结果,结果如下图所示。

log4net进阶手札(二):基本用法_log4_03

二、WebForm应用
在WebForm应用中,配置初始化log4net的方法要多一点,最终目的是相同的,既可以把代码加在Global.asax的Application_Start中,也可以写在Properties/AssemblyInfo.cs中,具体如下:

  1. [assembly: log4net.Config.XmlConfigurator()] 

其它的和上述中的WebSite都相同。