合肥.Net培训
达内合肥.net培训中心

0551-64632511

热门课程

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

  • 时间:2016-05-11 10:51
  • 发布:合肥.NET培训
  • 来源:企业面试题

Log4net就是为这样一个目的设计的,用于.NET开发环境的日志记录包了,我们下面一起来看一篇合肥达内.net培训老师的关于asp.net 4.0 使用log4net记录错误日志例子,希望此文章能够对大家有帮助。

原来也一直用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 = @"Config\log4net.cfg.xml", Watch = true)]

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

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


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section   name="log4net"   type="System.Configuration.IgnoreSectionHandler"   />
  </configSections>
  <log4net>
    <appender   name="LogFileAppender"   type="log4net.Appender.FileAppender">
      <param   name="File"   value="Log/log.txt"   />
      <param   name="AppendToFile"   value="true"   />
      <layout   type="log4net.Layout.PatternLayout">
        <param   name="Header"   value="[Header]/r/n"   />
        <param   name="Footer"   value="[Footer]/r/n"   />
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n"     />
      </layout>
    </appender>
    <root>
      <level   value="ALL"   />
      <appender-ref   ref="LogFileAppender"   />
    </root>
    <logger   name="SLog4net.Form1">
      <level   value="ALL"   />
      <appender-ref   ref="LogFileAppender"   />
    </logger>
  </log4net>
</configuration>

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

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

6、调用:

APManage.log.De<a href="http://www.suchso.com/programmer/chengxuyuan-duanzi-bug-shangwang.html" class="keylink" title=" Bug修复" target="_blank">bug</a>("系统启动");
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("\r\n" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
            str.Append("\r\n.客户信息:");
            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("\r\n\tIp:" + ip);
            str.Append("\r\n\t<a href="projecteactual/web-server-browser-cache-1.html" class="keylink" title=" 浏览器的缓存原理及缓存方式" target="_blank">浏览器</a>:" + Request.Browser.Browser.ToString());
            str.Append("\r\n\t浏览器版本:" + Request.Browser.MajorVersion.ToString());
            str.Append("\r\n\t操作系统:" + Request.Browser.Platform.ToString());
            str.Append("\r\n.错误信息:");
            str.Append("\r\n\t页面:" + Request.Url.ToString());
            str.Append("\r\n\t错误信息:" + ex.Message);
            str.Append("\r\n\t错误源:" + ex.Source);
            str.Append("\r\n\t异常方法:" + ex.TargetSite);
            str.Append("\r\n\t堆栈信息:" + ex.StackTrace);
            str.Append("\r\n--------------------------------------------------------------------------------------------------");
            APManage.log.Error(str);
            //处理完及时清理异常
            Server.ClearError();
        }
上一篇:asp.net版微信网页登录授权
下一篇:实现定时任务调度

一个小笔试题在NET上的不同表现

面试net基础知识点汇总

如何做组件化

选择城市和中心
贵州省

广西省

海南省