一、    Log4net特征
    Log4net是一个用于.NET开发环境的日志记录组件,由于它的超快及超灵活,很多大型的应用都会用到。
    它有如下特点:
    1.自定义日志输出级别
        Log4net将日志分为五个级别优先级从高到低依次:FATAL > ERROR > WARN > INFO > DEBUG,此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。可以通过日志级别来控制日志是否输出。如果你配置文件中定义的是INFO级别,程序中有三种日志记录方式
    Log.Info(“日志内容”),Log.Warn(“日志内容”),Log.Debug(“日志内容”)
    则Log.Info,Log.Debug都会输出日志,Log.Warn不会输出日志。
    2.自定义日志输出方式
        Log4net的日志输出方式很灵活,可以将日志输出至文本文件,控制台,邮件,Windows Event Log,数据库等等。
    对于写日志至文本文件还可以有如下非常灵活的配置。
        a.按时间段打印日志,按月,按日 ,按时,按分等随你配置
        b.按文件的大小 打印滚动日志,如每10M,100M一个日志文件,这样可以防止日志文件不至于过大,日志文件达到4,5G日后我们基本上就很难打开了。
        c.指定日志大小,比如说指定500M,那么日志将只有一个且不会超出500M。
    3.性能超快
        Log4net的日志记录性能是采用stringwriter记录日志方式的4倍左右。
二、    Log4net在项目中应用
    1.在log4net的官网http://logging.apache.org/log4net/下载一个log4net.dll,然后在项目中添加引用。
    2.配置
        a.log4net的配置有两种,一种是独立到单独的一个配置文件中,另一种是嵌入程序本身的配置文件中(如web项目的web.config,winform的appsetting中),但这两种的配置都差不多。
        b.配置步骤,在配置文件中的<configSections>节点下加入如下一行
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
        c.在<configSections>节点下加入真正用来干活的配置。
    比如说:
    <log4net debug="false">
     <appender name="My Appender " type="log4net.Appender.RollingFileAppender">
      <file value="D:\Vehpro\MyLogger.log" />
    <appendToFile value="true" />
     <rollingStyle value="Date" />
     <datePattern value="yyyyMMdd&quot;.log&quot;" />
     <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
      </layout>
    </appender>
    <logger name="MyLogger"  additivity="false">
    <level value="ALL"/>
    <appender-ref ref=" My Appender "/>
     </logger>
      <root>
          <level value="ALL" />
          <appender-ref ref=" My Appender "/>
     </root>
    </log4net>

在这段配置中定义了两个logger一个是root,另一个是MyLogger.它们都是通过appender-ref指定的My Appender介质来输出日志。
    d.激活log4net
    对于web工程,如果独立在一个配置文件中,假定配置文件名为log4net.config.xml
        则在Global.asax的Application_Start加入如下两行
        System.IO.FileInfo file = new System.IO.FileInfo(Server.MapPath("~\\log4net.config.xml"));
                log4net.Config.XmlConfigurator.ConfigureAndWatch(file);
        如果配置在web.config中则将代码换成log4net.Config.XmlConfigurator.Configure();

对于应用程序,winform,windows服务等则可以在AssemblyInfo中加入
        [assembly: log4net.Config.XmlConfigurator(Watch = true)]即可。
    3.上战场
    在类中加入一个字段log如下
    private  static log4net.ILog log = log4net.LogManager.GetLogger("MyLogger ");
    GetLogger方法体中的参数MyLogger就是配置文件中定义的logger name,这行代码的意思就是我要采用Mylogger的配置进行日志记录。
    接下来变可以在代码中调用log的方法输出日志了。

第一篇博客,发现写一点点文字还真不是个轻松的事。想写好还是没写得好,想写清没写得清呵呵,欢迎拍砖....

log4net 使用指南,最常遇到的问题整理。。。的更多相关文章

  1. Log4net使用指南

    请在这里下载示例代码 1           简介 1.1          Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的 ...

  2. [转]log4net 使用指南

    声明:本文内容主要译自Nauman Leghari的Using log4net,亦加入了个人的一点心得(节3.1.4). 请在这里下载示例代码 1           简介 1.1          ...

  3. Log4Net使用指南(转)

    转自:http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html 声明:本文内容主要译自Nauman Leghari的Using log4 ...

  4. C# Log4Net使用指南(转)

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

  5. Log4Net使用指南之用log4net记录日志到数据库(含有自定义属性)------附Demo例子源代码

    Log4NET简介 log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. 前提 最近做项目 ...

  6. log4net菜鸟指南二----生成access和txt

    前言 有可能目标计算机缺少某些组件,导致无法生成access文件,或者打不开文件,这时txt文件就可以方便的使用了 一,标准的控制台程序输出日志到access <?xml version=&qu ...

  7. log4net菜鸟指南

    log4net的作用 提供一个记录日志的框架,可以将日志信息记录到文件(txt.xml等).控制台.Windows事件日志和数据库(MSSQL.Acess.Oracle.DB2和SQLite等). 要 ...

  8. JS搞基指南----延迟对象入门提高资料整理

    JavaScript的Deferred是比较高大上的东西,  主要的应用还是主ajax的应用,  因为JS和nodeJS这几年的普及,  前端的代码越来越多,  各种回调套回调再套回调实在太让人崩溃, ...

  9. git完全cli指南之详细思维导图整理分享

    一直以来都觉得 在开发过程中 能用命令行的还是用命令行 能用快捷键的就要快捷键 前期可能要点学习成本 但是熟练后带来的好处还是非常可观的 所以一直坚持使用命令行的方式来使用git 基本上每个操作都能心 ...

随机推荐

  1. [问题解决]win10误删启动项(BCD)(HP电脑亲测,无需启动盘,并非重装系统)

    昨天使用easyBCD软件,开始不太懂,手残把win10的引导删除了,后来发现电脑关机总是变成重启,无奈强制关机.今天重启了一下电脑,发现电脑已经无法打开了,这才明白昨天是误删了win10的BCD. ...

  2. Sublime编辑器上的Linux Vim插件常用快捷键

    Sublime编辑器上的 Vim 插件常用快捷键 vim 的设置: 在Reference-> User Settings(首选项--> 设置用户) 选项,点击进入配置文件编辑状态,默认的用 ...

  3. 使用属性动画 — Property Animation

    属性动画,就是通过控制对象中的属性值产生的动画.属性动画是目前最高级的2D动画系统. 在API Level 11中添加.Property Animation号称能控制一切对象的动画,包括可见的和不可见 ...

  4. Template Method(模板方法)

    意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 适用性: 一次性实现一个算法的不变的部分, ...

  5. XML_CPP_资料_libXml2_01

    ZC: 看了一些 C/C++的XML文章,也看了一些 Qt的 QXmlQuery/QXmlSimpleReader/QXmlStreamReader/QXmlStreamWriter 的文章.总体感觉 ...

  6. Tensorflow一些常用基本概念与函数(二)

    1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf #定义‘符号’变量,也称为占位符 a = tf. ...

  7. domain---Node.js 异步异常的处理与domain模块解析

    var domain = require('domain'); app.use(function (req, res, next) { var reqDomain = domain.create(); ...

  8. Vue.js 数据绑定语法详解

    Vue.js 数据绑定语法详解 一.总结 一句话总结:Vue.js 的模板是基于 DOM 实现的.这意味着所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强.Vue ...

  9. Android手机无线adb

    1.首先电脑,手机通过数据线链接电脑,然后通过adb devices 查看到已连接 2.输入:adb tcpip 5555 3.输入:adb connect 222.222.221.137:5555 ...

  10. socket中 emit和on的写法

    socket.emit('action');表示发送了一个action命令,命令是字符串的,在另一端接收时,可以这么写: socket.on('action',function(){...});soc ...