1、Log4Net是什么?

      Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等)
 
2、Appender
     Appender:可以将日志输出到不同的地方,不同的输出目标对应不同的Appender:RollingFileAppender(滚动文件)、AdoNetAppender(数据库)、SmtpAppender (邮件)等
 
3、 level
     level(级别):标识这条日志信息的重要级别。None>Fatal>ERROR>WARN>DEBUG>INFO>ALL,设定一个Level,那么低于这个Level的日志是不会被写到Appender中的
 
4、配置一个Log4NetDemo的环境步骤
     (1)、新建一个控制台项目,添加一个“应用程序配置文件”(App.config)
     (2)、在App.Config或者Web.Config的添加如下配置:
             <!--Log4net块配置-->
     < configSections>
      < section name ="log4net " type ="log4net.Config.Log4NetConfigurationSectionHandler, log4net "/>
     </configSections>
 
     <log4net>
      <!-- 定义一些 appenders -->
      < appender name ="RollingLogFileAppender " type ="log4net.Appender.RollingFileAppender ">
      <!-- 写到哪个文件里去 -->
      < file value ="test.txt "/>
      <!-- 往文件里追加 -->
      < appendToFile value ="true "/>
      <!-- 最多10个日志备份文件 -->
      < maxSizeRollBackups value ="10 "/>
      <!-- 每个文件最大为1M -->
      < maximumFileSize value ="1024KB "/>
      <!-- 回滚的格式按照大小 -->
      < rollingStyle value ="Size "/>
      < staticLogFileName value ="true "/>
      <!--日志输出格式-->
      < layout type ="log4net.Layout.PatternLayout ">
       < conversionPattern value ="%date [%thread] %-5level %logger - %message%newline "/>
       </ layout>
       </ appender>
       < root>
     <!--定义level级别值和appender的列表-->
      < level value ="DEBUG "/>
      < appender-ref ref ="RollingLogFileAppender "/>
      </ root>
  </log4net>
     (3)、添加对log4net.dll的引用
     (4)、初始化:在程序最开始加入log4net.Config.XmlConfigurator.Configure();
     (5)、在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息"); 通过LogManager.GetLogger传递要记录的日志类类名获得这个类的ILog(这样在      日志文件中就能看到这条日志是哪个类输出的了),然后调用Debug方法输出消息。因为一个类内部不止一个地方要打印日志,所以一般把ILog声明为一个static字段。
     (6)、输出错误信息用ILog.Error方法,第二个参数可以传递Exception对象。log.Error("***错误"+ex),log.Error("***错误",ex)
 
  主程序代码:
  amespace log4netDemo

{
          class Program
         {
             private static ILog log = LogManager.GetLogger(typeof(Program));
             static void Main(string[] args)
             {

              //从配置文件读取log4net的配置,然后进行初始化操作
                 log4net.Config.XmlConfigurator.Configure();
                 log.Debug("调试");
                 log.Error("出错");
             }
         }
      }

 运行结果:在该程序bin/Debug目录下生成test.txt文本文件,内容如下:  

2013-10-20 00:39:24,730 [8] DEBUG log4netDemo.Program - 调试
  2013-10-20 00:39:24,743 [8] ERROR log4netDemo.Program - 出错

初学Log4Net的更多相关文章

  1. DDD初学指南

    去年就打算总结一下,结果新换的工作特别忙,就迟迟没有认真动手.主要内容是很多初学DDD甚至于学习很长时间的同学没有弄明白DDD是什么,适合什么情况.这世界上没有银弹,抛开了适合的场景孤立的去研究DDD ...

  2. gulp初学

    原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js  配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不 ...

  3. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  4. Log4net - 规则简介

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

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

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

  6. log4net使用手册

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

  7. Log4Net应用问题

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

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

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

  9. Log4net入门(帮助类篇)

    在前几篇Log4net入门文件的讲述过程中,我们在使用log4net的类中都要编写如下一行代码: private static log4net.ILog log = log4net.LogManage ...

随机推荐

  1. android 中判断WiFi是否可用的可靠方法 ,android 是否联网

    http://alex-yang-xiansoftware-com.iteye.com/blog/619841 在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当wifi不可用时应该 ...

  2. spring或springmvc自动生成applicationcontext.xml或springmvc文件(此文转载和借鉴多篇文章)

    在用spring或者springmvc框架进行开发时,编辑applicationcontext.xml等配置文件是必不可少的,在eclipse中打开applicationcontext.xml通常是这 ...

  3. Python的.py文件打包成exe可执行文件

    前几天做了几个简单的爬虫python程序,于是就想做个窗口看看效果. 首先是,窗口的话,以前没怎么接触过,就先考虑用Qt制作简单的ui.这里用前面sinanews的爬虫脚本为例,制作一个获取当天sin ...

  4. Android + OpenCV - Finding extreme points in contours

    原文链接:http://answers.opencv.org/question/134783/android-opencv-finding-extreme-points-in-contours/ 导 ...

  5. bing翻译API调用方法

    概述 前一段时间,遇到一个需求,需要对文章进行翻译,由于客户公司员工有国内的人员,也有国外的人员,为了照顾国外的同事,客户提出,当用户在手机端发布帖子,需要同时把帖子的内容翻译成英文,方便用户阅读.于 ...

  6. RunTime 给类添加属性

    RunTime网上有很多人都不知道Runtime到底是干嘛的?有很多博主都是长篇大论给他们讲这个讲那个,我感觉还不如实例来的实在.很简单的一个例子:我们都知道会有这样的需求,未读消息列表的图片上要有一 ...

  7. Android之仿京东淘宝的自动无限轮播控件

    在App的开发中,很多的时候都需要实现类似京东淘宝一样的自动无限轮播的广告栏,所以就自己写了一个,下面是我自定义控件的思路和过程. 一.自定义控件属性 新建自定义控件SliderLayout继承于Re ...

  8. Object-C开发常用宏定义

    Object-C开发中宏会将经常用到的系统常量进行封装,方便使用: 1.获取通知中心 #define EYNotificationCenter(name, object, userInfo) [[NS ...

  9. 关于压缩jar包时提示*.*没有这个文件或目录的问题以及解决办法:

    关于压缩jar包时提示.没有这个文件或目录的问题以及解决办法: 问题描述: 我在打包jar时,CMD中进入到包的上一层目录. 在命令提示符中输入 提示如下: 从提示中可知没有找到我们想要打包的clas ...

  10. Excel图表-创意雷达图-原创图表

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...