log4net 使用指南,最常遇到的问题整理。。。

一、    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的方法输出日志了。

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

时间: 2024-10-27 12:22:37

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

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

原文:JS搞基指南----延迟对象入门提高资料整理 JavaScript的Deferred是比较高大上的东西,  主要的应用还是主ajax的应用,  因为JS和nodeJS这几年的普及,  前端的代码越来越多,  各种回调套回调再套回调实在太让人崩溃, 所以就从后端拖了一个延迟对象这货, 用来解决回调地狱这个问题 .  我们使用ajax的时候多数都是为ajax添加回调 ,然后异步向服务器发送请求, 比如如下原生的XHR代码: <!DOCTYPE html PUBLIC "-//W3C//D

Log4Net使用指南

Log4记录日志使用说明   |  Log4net学习笔记 <1> Appender 附加,增加配置附加器有很多种,主要用到的几种: log4net.Appender.AdoNetAppender <记录到数据库配置access,sqlserver或者其他的数据库> log4net.Appender.FileAppender <记录到记录日志到单个文件> log4net.Appender.EventLogAppender <记录到记录日志到操作系统的事件>

C# Log4Net使用指南(转)

1           简介 1.1          Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题. 经验表明,日志记录往往是软件开发周期中的重要组成部分.它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug:一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预.另

动态修改log4net组件的日志文件名

最近项目使用到log4net来记录日志,当然二话不说先到cnblogs上查看一下各位高手关于log4net的教程和心得主要参看了摩诘 的Log4Net使用指南 (确实是非常好的log4net的入门指南),在此篇文章的评论中@所罗门 有个问题可能摩诘比较忙没有时间去是实验和解答,问题如下:如果我在配置文件里不设定Appender的File,即删除了<param name="File" value="log-file.txt" /> 一行信息,我想要在程序运

指针和数组——高质量C、C++编程指南

本文内容出自<高质量C.C++编程指南>,通过阅读之后整理和总结,并用例子证明. 数组:在静态存储区创建或者栈上创建.数组名对应着一块内存,其地址与容量在生命周期内保持不变,只有数组的内容可以改变. 指针:随时指向任意类型的内存块,特征是"可变",所以指针可以用来操作动态内存. 1.数组和指针的大小. char str[] = "hello"; char* pStr = "hello"; int* pInt = nullptr; pr

从零开始搭建论坛(一):Web服务器与Web框架

之前用 Django 做过一个小的站点,感觉Django太过笨重,于是就准备换一个比较轻量级的 Web 框架来玩玩.Web.py 作者已经挂掉,项目好久没有更新,所以不准备用它.而 Flask 也是一个成熟的轻量级 Web 框架,在 github 上有众多的 Star 和 Fork,文档和扩展也很丰富,值得学习. 学习一个框架最好的方式就是用框架做一个项目,在实战中理解掌握框架.这里我用 Flask 框架,使用 Mysql 数据库做了一个论坛系统.麻雀虽小,五脏俱全,论坛效果图如下: 下面是论坛

(转载)Android中的Service:Binder,Messenger,AIDL(2)

前言 前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等.在这一篇博文里有一些需要前一篇铺垫的东西,建议没有看过前一篇博文的同学先去看一下前一篇: Android中的Service:默默的奉献者 (1) . 但是在前一篇博文中也有一些遗漏的东西--主要是关于bindService()这一块的具体细节.由于这一块涉及的东西还是比较多,所以在这里单独提出来了.闲话不多说,进入正文. 1.bindServ

JS逗号运算符的用法详解

逗号运算符的用法详解 注意: 一.由于目前正在功读JavaScript技术,所以这里拿JavaScript为例.你可以自己在PHP中试试. 二.JavaScript语法比较复杂,因此拿JavaScript做举例. 最近重新阅读JavaScript权威指南这本书,应该说很认真的阅读,于是便想把所学的东西多记录下来.后 面本人将逐步写上更多关于本书的文章. 本文的理论知识来自于JavaScript权威指南,我这里做一下整理,或者说叫笔记. 如果你的基础够好的话,完全理解不成问题,但是如果读得有些郁闷

Log4Net指南

Log4Net指南 英文好的直接看这里:http://www.codeproject.com/Articles/140911/log4net-Tutorial 介绍 log4net.是.NET下面最伟大的日志工具之一.简单.强大.可扩展,简直是日志工具的黄金标准. 在我看来唯一欠缺是一个比较直接的使用指南. 这个文档,在深度主要讲如何使用,但它还是有点模糊.基本上,如果你已经知道log4net能做什么,如果你只是想知道语法,那么这个文档就适合你了.外面的文档通常是针对一类系统. 我希望我的这份指