一、    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. ESP8266调试笔记

    ESP8266 新款版本使用用简要: 此版本若想从FLASH启动进入AT系统,只需中间四个脚接VCC高电平即可,其中GPIO0为高电平代表从FLASH启动,GPIO0为低电平代表进入系统升级状态,此时 ...

  2. sqlite的缺点和限制

    随着查询变大变复杂,查询时间使得网络调用或者事务处理开销相形见绌, 这时一些大型的设计复杂的数据库开始发挥作用了. 虽然SQLite也能处理复杂的查询,但是它没有精密的优化器或者查询计划器. SQLi ...

  3. HBase参数优化

    zookeeper.session.timeout默认值:3分钟(180000ms)说明:RegionServer与Zookeeper间的连接超时时间.当超时时间到后,ReigonServer会被Zo ...

  4. git commit时加上Signed-off-by信息

    git commit -s -m "descriptions about the code" 只要加入-s参数即可自动加上Signed-off-by信息

  5. HttpClient 4.5.3 get和post请求

    HttpCilent 4.5.3 域名购买.com 后缀好域名 https://mi.aliyun.com/shop/38040 GET请求 CloseableHttpClient httpCilen ...

  6. POJ 2486 Apple Tree(树形dp)

    http://poj.org/problem?id=2486 题意: 有n个点,每个点有一个权值,从1出发,走k步,最多能获得多少权值.(每个点只能获得一次) 思路: 从1点开始,往下dfs,对于每个 ...

  7. 使用 while 循环

    与 for 循环不同,while 循环会一直运行,直到给定条件不满足为止.例如,下面的 while 循环从 x=0 开始.每次循环都会检查 x<=10 是否成立.如果成立,就执行循环内部的表达式 ...

  8. Spring IOC和IOC容器

    IOC的核心理念即是控制反转.将对依赖的控制从具体业务对象手中转交到平台或框架中,需要的时候再由平台或框架注入到具体业务对象中.可以说依赖注入是控制反转的实现方式. IOC的优点: 降低代码耦合度 减 ...

  9. [原][osgearth]FAQ

    参考:http://docs.osgearth.org/en/latest/faq.html Common Usage How do I place a 3D model on the map? Th ...

  10. vue之双绑实现

    // html <body> <div id="app"> <input type="text" v-model="nu ...