log4net的配置和使用

reference
http://www.cnblogs.com/wangchunlan2004/archive/2006/08/10/473400.html

在Assembly.cs中加入这样一句

[assembly: log4net.Config.DOMConfigurator()]//具体的参看引用

在web.config中添加如下项:

//必须是configuration下的第一项目
  


 
 
  
   
   
   
  

  
   
  

  
   
   
   
    
    
    
    
   

   
    
    
   

  

  
   
    
   

  

 
 

新建一个类LoggerPage,要记录日志的窗体都可以继承该类,这是针对整个web站点的,
针对单个页面的,可以在LoggerPage添加一个log4net.spi.Level类当字段,并且把ilog的修饰符static去掉,使用log4net.spi.Level来对ilog进行设置

using System;
using System.Web;
using System.Reflection;
using log4net.Config;
using System.Web.UI;

namespace NewWebTest
{
 ///


 /// DebugPage 的摘要说明。
 ///

 public class LoggerPage:System.Web.UI.Page
 {
  protected static  readonly log4net.ILog ilog=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);//这个反射在static下没有意义

  protected void DebugLog(object msg)
  {
   if(ilog.IsDebugEnabled)//提高效率

   {
    ilog.Debug(this.Combine(msg));
    //ilog.Debug(msg);
   }
  }

  private object Combine(object msg)
  {
   //object str=
            return this.GetType().Name+"-->"+msg.ToString();;
  }

  protected void ErrorLog(object msg)

//由于System.Web.UI.TemplateControl.Error()的存在 所以加了Log而不写New。
  {
   if(ilog.IsErrorEnabled)
   {
    ilog.Error(this.Combine(msg));
   }
  }

  protected void WarnLog(object msg)
  {
   if(ilog.IsWarnEnabled)
   {
    ilog.Warn(this.Combine(msg));
   }
  }

  protected void InfoLog(object msg)
  {
   if(ilog.IsInfoEnabled)
   {
    ilog.Info(this.Combine(msg));
   }
  }

  protected void FatalLog(object msg)
  {
   if(ilog.IsFatalEnabled)
   {
    ilog.Fatal(this.Combine(msg));
   }
  }

 

 
 }
}

你可能感兴趣的:(c#,log4net,object,assembly,header,reference,layout)