现在位置首页 / 项目实战 /正文

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

作者: IT小兵 | 2016年3月11日| 热度:℃ | 评论: |参与:

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

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

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.Debug("系统启动");

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浏览器:" + 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();
        }


点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询