asp.net 4.0 使用log4net记录错误日志例子

作者:袖梨 2022-06-25

原来也一直用log4net记录日志,但是是在.net2.0 上用的。最近用到新的项目是vs2015开发的,要用log4net,今天将.net 4.0 使用log4net记录错误日志的步骤,分享给大家。

1、首先到http://logging.apache.org/log4net/download_log4net.cgi 下载最新版本的log4net。如果不需要修改log4net的源代码的话,建议下载二进制的就可以了。最新版本是log4net 1.2.15。

IT分享

2、下载好log4net.dll文件后,找到net4.0版本的dll文件。拷贝到项目中根目录下的自定义目录lib文件夹下,然后在项目中添加对该文件的引用。

3、找到项目中Propertites目录下的AssemblyInfo.cs文件,在末尾添加一行调用配置文件的代码如下:  


[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Configlog4net.cfg.xml", Watch = true)]

4、新建配置文件夹Config,并添加一个log4net.cfg.xml文件,配置文件内容如下:

注意:路径别搞错了,看清楚上面的图~




 
   
 

 
   
     
     
     
       
       
       
     
   
   
     
     
   

   
     
     
   
 

5、建一个公共类,在里面加上这样的代码:

 public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

6、调用:

APManage.log.Debug("系统启动");
IT分享

7、记录错误日志:

web项目中添加全局处理文件Global.asax。

protected void Application_Error(object sender, EventArgs e)
        {
            ErrorDeal();
        }
          private void ErrorDeal()
        {
            // 在出现未处理的错误时运行的代码
            Exception ex = Server.GetLastError().GetBaseException();
            StringBuilder str = new StringBuilder();
            str.Append("rn" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
            str.Append("rn.客户信息:");
            string ip = "";
            if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null)
            {
                ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim();
            }
            else
            {
                ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim();
            }
            str.Append("rntIp:" + ip);
            str.Append("rnt浏览器:" + Request.Browser.Browser.ToString());
            str.Append("rnt浏览器版本:" + Request.Browser.MajorVersion.ToString());
            str.Append("rnt操作系统:" + Request.Browser.Platform.ToString());
            str.Append("rn.错误信息:");
            str.Append("rnt页面:" + Request.Url.ToString());
            str.Append("rnt错误信息:" + ex.Message);
            str.Append("rnt错误源:" + ex.Source);
            str.Append("rnt异常方法:" + ex.TargetSite);
            str.Append("rnt堆栈信息:" + ex.StackTrace);
            str.Append("rn--------------------------------------------------------------------------------------------------");
            APManage.log.Error(str);
            //处理完及时清理异常
            Server.ClearError();
        }

相关文章

精彩推荐