asp.net Web项目中使用Log4Net进行错误日志记录

    使用log4net可以很方便地为应用添加日志功能。应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能。同时,通过外部配置文件,用户可以不用重新编译程序就能改变应用的日志行为,使得用户可以根据情况灵活地选择要记录的信息。


   那么我们如何在Web项目中使用Log4Net呢?


一、基本配置


1、下载Log4Net,地址如下:http://logging.apache.org/log4net/download_log4net.cgi,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第1张图片

      

2、下载到本地后,进行解压,,并找到对应版本的.NET Framework版本,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第2张图片

asp.net Web项目中使用Log4Net进行错误日志记录_第3张图片


3、在项目中添加Log4Net.DLL的引用,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第4张图片

asp.net Web项目中使用Log4Net进行错误日志记录_第5张图片


4、在Web项目根目录下创建log4net.config配置文件,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第6张图片

asp.net Web项目中使用Log4Net进行错误日志记录_第7张图片

配置文件log4new.config XML代码如下:



  
    
    
    
    
      
    
  
  
    
      
    
  
  
    
      
    
  
  
    
    
    
    
    
    
      
    
  
  
    
    
    
  

 

5、项目中添加一个LogHelper.cs操作类,这样可以之后的其他页面进行调用,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第8张图片


LogHelper.cs类代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace APESM_GGJ.CommonClass
{
    public class LogHelper
    {
        /// 
        /// 输出日志到Log4Net
        /// 
        /// 
        /// 
        #region static void WriteLog(Type t, Exception ex)

        public static void WriteLog(Type t, Exception ex)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Error("Error", ex);
        }

        #endregion

        /// 
        /// 输出日志到Log4Net
        /// 
        /// 
        /// 
        #region static void WriteLog(Type t, string msg)

        public static void WriteLog(Type t, string msg)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Error(msg);
        }

        #endregion

    }
}


 6、在项目中添加一个全局应用程序类Global.asax,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第9张图片

asp.net Web项目中使用Log4Net进行错误日志记录_第10张图片


 方法中添加如下代码:

protected void Application_Start(object sender, EventArgs e)
{
     //应用程序启动时,自动加载配置log4Net
     XmlConfigurator.Configure();
 }



 7、打开Web.config文件,添加如下配置信息,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第11张图片


  配置文件代码如下:






  
  
    


 8、在页面中调用,进行日志写入,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第12张图片

asp.net Web项目中使用Log4Net进行错误日志记录_第13张图片

页面调用代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        LogHelper.WriteLog(typeof(Login), "测试在Web项目中使用Log4Net日志!");
    }
}


9、查看项目根目录下的Log文件夹,可以看见我们写入的日志log文件,如下图所示:

asp.net Web项目中使用Log4Net进行错误日志记录_第14张图片


   至此在Web项目中使用Log4Net进行日志记录的功能就已经实现了。


---------------------------------------------------------------------------------------------------------------------


二、扩展


    上面实现的是将日志写入到文件中,那么如果想写入到数据库中,该如何操作,这里以SQL Server为例,创建一个日志表,然后修改log4net.config文件,如下代码:



  
    
    
    
    
    
      
      
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
    
  
  
  
    
    
    
    
    
  
  
  
    
    
    
    
    
  
  
    
    
  


注意10" /> ,需要注意的一个参数 bufferSize=10 表示是记录10 条到缓冲区,满10条后再写入SQL server;

测试时将其修改为1

生产环境建议100


上面配置节中数据库名,用户名和密码,根据实际情况进行修改。


数据库表ErrorLog创建语句为:

CREATE TABLE ErrorLog(   
    nId bigint IDENTITY(1,1) NOT NULL,   
    dtDate datetime NOT NULL,   
    sThread nvarchar(100) NOT NULL,   
    sLevel nvarchar(200) NOT NULL,   
    sLogger nvarchar(500) NOT NULL,   
    sMessage nvarchar(3000) NOT NULL,   
    sException nvarchar(4000) NULL
);

如下图所示:




三、整合

想同时保存到日志文件和数据库,log4net.config的文件配置如下XML代码所示:



  
  
    
    
    
    
    
      
      
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
        
      
    
    
      
      
      
      
    
  

  
  
    
    
    
    
      
    
  
  
    
      
    
  
  
    
      
    
  
  
    
    
    
    
    
    
      
    
  

  
  
    
    
    
    
    
    
  

  
  
    
    
    
    
    
    
  

  
    
    
    
  



===========================================================================

如果觉得对您有帮助,微信扫一扫支持一下:



你可能感兴趣的:(C#.NET编程,asp.net,应用开发)