文章内容

2017/5/23 12:04:30,作 者: 黄兵

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

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


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


一、基本配置


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


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



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



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


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

  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <log4net debug="false">  
  3.   <appender name="LogFileAppender" type="log4net.Appender.FileAppender">  
  4.     <param name="File" value="Log/AT.log"/>  
  5.     <param name="datePattern" value="YY-MM-dd HH:mm"/>  
  6.     <param name="AppendToFile" value="true"/>  
  7.     <layout type="log4net.Layout.PatternLayout">  
  8.       <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>  
  9.     </layout>  
  10.   </appender>  
  11.   <appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">  
  12.     <layout type="log4net.Layout.PatternLayout">  
  13.       <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>  
  14.     </layout>  
  15.   </appender>  
  16.   <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">  
  17.     <layout type="log4net.Layout.PatternLayout">  
  18.       <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>  
  19.     </layout>  
  20.   </appender>  
  21.   <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">  
  22.     <file value="log\AT"/>  
  23.     <appendToFile value="true"/>  
  24.     <rollingStyle value="Date"/>  
  25.     <datePattern value="_yyyyMMdd'.log'"/>  
  26.     <staticLogFileName value="false"/>  
  27.     <layout type="log4net.Layout.PatternLayout">  
  28.       <conversionPattern value="%d [%t] %-5p %c - %m%n"/>  
  29.     </layout>  
  30.   </appender>  
  31.   <root>  
  32.     <level value="INFO"/>  
  33.     <!--<level value="ERROR" />-->  
  34.     <appender-ref ref="RollingLogFileAppender"/>  
  35.   </root>  
  36. </log4net>  


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




  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5.   
  6. [assembly: log4net.Config.XmlConfigurator(Watch = true)]  
  7. namespace APESM_GGJ.CommonClass  
  8. {  
  9.     public class LogHelper  
  10.     {  
  11.         /// <summary>  
  12.         /// 输出日志到Log4Net  
  13.         /// </summary>  
  14.         /// <param name="t"></param>  
  15.         /// <param name="ex"></param>  
  16.         #region static void WriteLog(Type t, Exception ex)  
  17.   
  18.         public static void WriteLog(Type t, Exception ex)  
  19.         {  
  20.             log4net.ILog log = log4net.LogManager.GetLogger(t);  
  21.             log.Error("Error", ex);  
  22.         }  
  23.  
  24.         #endregion  
  25.   
  26.         /// <summary>  
  27.         /// 输出日志到Log4Net  
  28.         /// </summary>  
  29.         /// <param name="t"></param>  
  30.         /// <param name="msg"></param>  
  31.         #region static void WriteLog(Type t, string msg)  
  32.   
  33.         public static void WriteLog(Type t, string msg)  
  34.         {  
  35.             log4net.ILog log = log4net.LogManager.GetLogger(t);  
  36.             log.Error(msg);  
  37.         }  
  38.  
  39.         #endregion  
  40.   
  41.     }  
  42. }  

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


 方法中添加如下代码:

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

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

  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <!--  
  4.   有关如何配置 ASP.NET 应用程序的详细信息,请访问  
  5.   http://go.microsoft.com/fwlink/?LinkId=169433  
  6.   -->  
  7.   
  8. <configuration>  
  9.     
  10.   <configSections>  
  11.     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>  
  12.   </configSections>  
  13.   <log4net configSource="log4net.config"/>  
  14.   <system.web>  
  15.     <httpModules>  
  16.       <!--重写IHttpModule类,需要配置的信息-->  
  17.       <!--<add name="FilterModule" type="APESM_GGJ.FilterModule,APESM_GGJ" />-->  
  18.     </httpModules>  
  19.     <compilation debug="true" targetFramework="4.0" />  
  20.   </system.web>  
  21. </configuration>  

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



页面调用代码:

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

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



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


本文转载自: asp.net Web项目中使用Log4Net进行错误日志记录

分享到:

发表评论

评论列表