原创文章,转载必需注明出处:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/log4net%E4%B9%8B%E5%88%9D%E6%AD%A5%E4%BA%86%E8%A7%A3/

在日常的项目调试中,我们往往会遇到一些BUG或者异常错误日志,那么把这写BUG或错误日志记录下来,能使我们在第一时间找到错误的所在地,以及错误的原因,以便于我们第一时间纠错。

往往我们会把错误日志直接写到txt文本中,或者想把错误日志写到数据库中,再或者想同时想两者中写入不同错误等级的BUG信息或者错误日志。有了上面的需求那么下面我们介绍的log4net的使用则是相对比较有效解决方案。

下面我们来介绍如何将错误日志记录到文档中:

首先、你要准备好log4net的dll文件。

log4net下载链接:http://logging.apache.org/log4net/download_log4net.cgi

使用VS的朋友可以直接在VS的NuGet程序包管理器中下载使用

其次、你要配置相应的config文件

下载完成并将log4net的dll文件引入项目中后,你需要在你的项目中新建一个config文件(如log4net.config)向文件中填充如下内容。

 <configuration>
   <configSections>
     <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
   </configSections>
   <log4net>
     <root>
       <level value="ALL"/>
       <appender-ref ref="FileAppender"/>
     </root>
 <!--存储到文件的操作-->
     <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
       <param name="File" value="Log\log.txt"/>
       <rollingStyle value="Date"/>
       <param name="AppendToFile" value="true"/>
       <!--<param name="DatePattern" value="yyyy-MM-dd".txt""/>-->
 <param name="DatePattern" value="log.txt"/>
       <layout type="log4net.Layout.PatternLayout">
         <param name="ConversionPattern" value="%date%n--- ThreadId=[%t]   Level=%-5p   Message=%m%n"/>
       </layout>
     </appender>
   </log4net>
 </configuration>

在项目中找到AssemblyInfo.cs文件,向文件的最后一行加入代码:

 [assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]

或者在项目的Application_Start()函数中加入代码

 log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("log4net.config")));

这样就可以在项目中引入log4net,代码如下

 ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
 log.Error("变量不存在");

ok,这一流程走下来你就可以在你的项目下的log.txt文件中看见错误语句了,下一篇将详细讲解log4net保存日志到文档的配置。

Log4Net之初步了解的更多相关文章

  1. ASP.NET MVC4中加入Log4Net日志记录功能

    前言 在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net.NLog.CommonLogging等,虽然多多少少使用起来有点费劲,但这里还是简单分享一下Log4Ne ...

  2. log4net 初步使用

    自从知道了log4net之后,就一直使用的它,一直没有问题,最近由于项目变动,便将一部分的代码分离出来,然后咋UI项目中调用loghelper,便发现在本地测试一切正常,可是发布到服务器之后便不正常了 ...

  3. log4net性能小探

    初步测试了Log4性能.Appender架构如下. 一般客户端,使用FileAppender,把Log记录在本地磁盘. <lockingModel type="log4net.Appe ...

  4. 移动端之Android开发的几种方式的初步体验

    目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...

  5. Log4net - 规则简介

    参考页面: http://www.yuanjiaocheng.net/CSharp/csharprumenshili.html http://www.yuanjiaocheng.net/entity/ ...

  6. Log4net - 项目使用的一个简单Demo

    参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entit ...

  7. log4net使用手册

    1. log4net简介 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.Java平台下,它还 ...

  8. Log4Net应用问题

    问题 一.日志存储方式 1.txt 2.SQLServer数据库 3.log文件 二.项目类型不同 1winFrom 2webFrom 3MVC 4WPF 5控制台 三.切分依据不同 1.空间大小 2 ...

  9. 在C#代码中应用Log4Net系列教程(附源代码)

    Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...

随机推荐

  1. Ineligible Devices 不被识别的设备

    设备不可用,出现Ineligible Devices,如下图: 此错误因为 Xcode的Deployment Target 大于设备的,选择和设备一样活着低于设备的.如下图:

  2. Tengine – Nginx衍生版

    Tengine是淘宝在Nginx基础上开发的一个衍生版.官方的简介说针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验. ...

  3. EasyUI样式在IE下无法显示原因总结

    1.js css顺序错误 <script type="text/javascript" charset="utf-8" src="js/jque ...

  4. 玩转轻巧型C/C++ IDE之C-Free(配置GCC、Visual C++、Borland C++编译器)

    玩转轻巧型C/C++ IDE之C-Free(配置GCC.Visual C++.Borland C++编译器) 之前在写一点简单的C/C++代码时习惯了VC++6.0,但是由于在windows7下VC6 ...

  5. POJ 3259 Wormholes(SPFA判负环)

    题目链接:http://poj.org/problem?id=3259 题目大意是给你n个点,m条双向边,w条负权单向边.问你是否有负环(虫洞). 这个就是spfa判负环的模版题,中间的cnt数组就是 ...

  6. Contest 7.23(不知道算什么)

    Problem A   URAL 1181 Cutting a Painted Polygon 题目大意就是说有一个N边形,让你做N-3条边,让他们的每个三角形的三个顶点颜色都不相同. 这里有一个引理 ...

  7. web.xml文件中配置ShallowEtagHeaderFilter需注意的问题

    问题现象及解决方法 今天在Spring MVC应用中加入ShallowEtagHeaderFilter时,发现返回的响应中没有etag头,上网查了很多相关资料,也试了很多方法依然不起作用.在查看web ...

  8. Unity3D之移植学习笔记:移植到Android平台更好的方法

    接上文,之前我们采用了直接将Unity项目导出为Eclipse项目来修改的方式,这种做法存在的一个最大的问题就是:每当Unity被修改之后,都需要重新导出,而每次导出的项目在Android平台方面的J ...

  9. java.lang.OutOfMemory总结分析

    OOM浅析 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识 ...

  10. PostgreSQL的 initdb 源代码分析之二

    继续分析 下面这一段,当 initdb --version 或者  initdb --help 才有意义. ) { ], || strcmp(argv[], ) { usage(progname); ...