1:写在前面:

由于最近在项目中用到了log4Net,所以拿来和大家分享一下,我们都知道在开发项目中,大家有可能会用到日志功能,记录日志的方法很多,在.net中微软为我们提供了EntLib(Enterprise library ) Logging Application Block日志记录模块;另外我们也可以使用Apache的log4net日志模块,当然了我们也可以用自己的方法来记录日志,不管使用什么方法来记录日志,我们的目的就是在项目部署以后,能够很快定位程序中的bug,提高我们解决bug效率。了解整个系统的运行情况,因为我们在开发阶段我们可以通过调试来检查bug,一旦程序部署了以后,使用这种方法也许不太可能了。所以日志是我们找出原因的最佳路径,由于log4net支待多平台,且运行效率要比EntLib来的高,不过据说log4Net已以很久没有更新了,我们暂且不关注这个。本文部分内容翻译于http://logging.apache.org/log4net.

2:Log4net DLL

要想在我们的项目中能够使用Log4net ,我们需要引用Log4net dll文件,这个文件我们可以从官方站下载

http://logging.apache.org/log4net/download.html    这是一个solution需要编译后才可以产生dll文件.

以可以从CSDN上下载:

http://download.csdn.net/source/839743

3:Log4Net的特性

Support for multiple frameworks(目前好像只有1.0.1.1,2.0的版本,没有3.5的)
Output to multiple logging targets
Hierarchical logging architecture
XML Configuration
Dynamic Configuration(可以在程序运行的时候修改配置文件)
Logging Context
Proven architecture
Modular and extensible design
High performance with flexibility

4:Log4Net的结构

Log4net有三个主要的组件,他们分别是:loggers,appenders and layouts。

Logger是最主要的组件,它用来产生日志消息。日志需要经过Layout的格式化处理后才会输出。就类似于文件流,Logger就是用来产生文件流的,Layout就是定义文件流输出的格式,是二进制流还是Xml等等. appenders 就类似于输出文件流,文件流的位置,如控制台还是文本等等.所以理解这三者的关系后,我们就可以使用Log4Net了.Logger提供了多种方式来记录一个日志消息,你可以在你的应用程序里创建多个Logger,每个实例化的Logger对象都被log4net框架作为命名实体来维护。这意味着为了重用Logger对象,你不必将它在不同的类或对象间传递,只需要用它的名字为参数调用就可以了。Log4net框架定义了一个ILog接口,所有的logger类都必须实现这个接口。ILog接口的部分代码定义如下:

Layout的转换模式:

%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息

%n(new line):换行

%d(datetime):输出当前语句运行的时刻

%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数

%t(thread id):当前语句所在的线程ID

%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等

%c(class):当前日志对象的名称,例如:

模式字符串为:%-10c -%m%n

代码为:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> ILog log

在.Net中使用log4Net相关推荐

  1. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  2. 在.net开发中使用Log4Net组件

    1 简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断 ...

  3. 在C#的类库中使用log4net

    在C#的类库中使用log4net 1,在类库中添加对log4net的引用.并且在app.config(web.config)中添加如下代码: 添加的位置你懂的.  <section name=& ...

  4. 在C#代码中应用Log4Net 中配置文件的解释

    一个完整的配置文件的例子如下所示,这个是"在C#代码中应用Log4Net(二)"中使用的配置文件. <log4net><!-- 错误日志类--><lo ...

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

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

  6. 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用

    前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用.下面的示例程序简单地分为两层,一个是应用程序层We ...

  7. asp.net core中使用log4net

    和之前的ASP.NET MVC中的使用LOG4NET的方法有些不同,这里先记录一下,使用步骤如下 : 1. 建立 ASP.NET CORE项目中,NUGET中搜索log4net后下载安装 2. 根目录 ...

  8. log4net保存到数据库系列二:独立配置文件中配置log4net

    园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...

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

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

  10. Asp.Net中MVC中的Log4Net配置及运用

    前言: 项目里我们都需要记录一些日志.当然记录的日志的方式有很多,比如用文本记录日志,数据库记录日志,甚至用word记录日志,但是这些记录日志的方式不灵活.下面我为大家介绍下一个简单的日志组件:Log ...

最新文章

  1. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28
  2. leetcode刷题总结(持续更新)
  3. libQtCore.so.4相关错误
  4. c++ 每半个小时打印一次_有了3D打印机,后期该如何维护呢
  5. mysql某个表的列除以2_数据库mysql(二)
  6. redis 经纬度_Redis 中的 GEO(地理信息)类型
  7. Ubuntu18.04修改主机名和用户名
  8. Cocos2d-x层(Layer)详解
  9. INADDR_ANY的确切含义
  10. 召之即来,来之能战,战则必胜——走进华云数据交付团队
  11. 生物信息学数据库及在线工具汇总 (更新)
  12. Spark - RangePartitioner rangeBounds 生成 源码分析 实践
  13. C不会断句?【前后置,位,移位操作符详解】 b = ++c, c++, ++a, a++
  14. 成为新时代大数据工程师要满足哪些要求?
  15. 带上传文件功能的写CSDN博客并发表
  16. 更新wlan.bin文件
  17. CUMCM-2017-problem-A
  18. 学习 《模型思维》-斯科特·佩奇 笔记 9.27
  19. Kotlin高仿微信-第35篇-支付-二维码收款(二维码)
  20. 第五章 C++与STL入门 例题

热门文章

  1. 信息学奥赛一本通 1143:最长最短单词 | OpenJudge NOI 1.7 25
  2. 信息学奥赛一本通 1075:药房管理 | OpenJudge NOI 1.5 23:药房管理
  3. Charm Bracelet(信息学奥赛一本通-T1294)
  4. 组合的输出(信息学奥赛一本通-T1317)
  5. 信息学奥赛C++语言:新三好学生
  6. postgresql 重启记录_PostgreSQL 高可用:PostgreSQL复制和自动故障转移
  7. vc6 前进后退 番茄_比较圣女果与西红柿中的Vc含量解读
  8. vue子组件赋值props_vue 父子传值props赋值失效问题
  9. opencv学习笔记2
  10. Building wheel for mmcv-full (setup.py) ... error和OSError: CUDA_HOME environment variable is not set