log4net简明教程

rel="File-List" href="file:///C:%5CUsers%5CWilliam%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"> rel="themeData" href="file:///C:%5CUsers%5CWilliam%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"> rel="colorSchemeMapping" href="file:///C:%5CUsers%5CWilliam%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">

log4net是用于.net framework的日志框架。

我主要参考这个教程:

http://www.cnblogs.com/dragon/archive/2005/03/24/124254.aspx

 

由于原教程比较复杂,而且跟新版的log4net有一些不同,所以我整理出了以下最基本的log4net使用方法:

 

首先在程序的目录下(注意不是源文件的目录)建立如下一个xml文件(名字随意,假设是"MyLogger.Config"

PS:由于使用utf-8编码,建议不要在配置文件中使用中文)

<?xml version="1.0" encoding="utf-8" ?>

 

<configuration>

 

  <configSections>

 

    <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />

 

  </configSections>

 

  <!-- from here we will setup log4net-->

  <log4net>

 

    <root>

                   <level value="WARN" />

                   <appender-ref ref="LogFileAppender" />

                   <appender-ref ref="ConsoleAppender" />

    </root>

 

    <logger name="MyLogger">

      <level value="DEBUG"/>

    </logger>

 

         <!-- define one appender for log file -->

    <appender name="LogFileAppender"

             type="log4net.Appender.FileAppender" >

 

                   <param name="File" value="log-file.txt" /><!-- file name is log-file.txt -->

                   <param name="AppendToFile" value="true" />

 

                   <!-- define format -->

                   <layout type="log4net.Layout.PatternLayout">

                            <param name="Header" value="[Header]&#13;&#10;"/>

                            <param name="Footer" value="[Footer]&#13;&#10;"/>

                            <param name="ConversionPattern"

                                     value="%date [%thread] %-5level %logger [%ndc] - %message%newline"/>

                   </layout>

 

      <filter type="log4net.Filter.LevelRangeFilter">

        <param name="LevelMin" value="DEBUG" />

        <param name="LevelMax" value="WARN" />

      </filter>

 

    </appender>

 

  

 

         <!-- define one appender for console log-->

    <appender name="ConsoleAppender"

              type="log4net.Appender.ConsoleAppender" >

 

      <layout type="log4net.Layout.PatternLayout">

        <param name="ConversionPattern"

           value="%date [%thread] %-5level %logger [%ndc] - %message%newline"/>

      </layout>

 

    </appender>  

 

  </log4net>

 

</configuration>

 

之后就是写程序,首先在工程add reference,添加对log4net.dll的引用

 

然后在程序中读取这个文件:

 

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("MyLogger.Config"));

 

其中的MyLogger.Config就是配置文件的名称,根据实际情况改成自己的配置文件名即可

然后就可以使用log4net做日志记录了:

 

log4net.ILog logger = log4net.LogManager.GetLogger("MyLogger");//获取一个全局的名称为“MyLogger”的logger

log.Debug("message");//在日志中输出一段Debug级别的信息

log.Info("message");//在日志中输出一段Info级别的信息

 

以下是完整程序:

    class Program

    {

        static void Main(string[] args)

        {

            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("MyLogger.Config"));

            log4net.ILog logger = log4net.LogManager.GetLogger("MyLogger");

            logger.Debug("test debug message");

            logger.Info("test info message");

        }

    }

 

可以看到上面的日志级别(DebugInfo),根据配置文件的设置,有些级别的内容会被屏蔽掉,如果你想在不同情况下输出不同的东西,就可以借助修改配置文件实现。更详细的方法可参考引用的教程(地址见页首)。

1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动时读取log4net的配置文件。 如果是CS程序,在根目录的Program.cs中的Main方法中添加: log4net.Config.XmlConfigurator.Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加: log4net.Config.XmlConfigurator.Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句: [assembly: log4net.Config .XmlConfigurator()] 也可以使用自定义的配置文件,具体请参见4.4 关联配置文件。 第三步:修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样,这里不再列出。 App.config文件添加内容如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <root> <level value="WARN" /> <appender-ref ref="LogFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> <logger name="testApp.Logging"> <level value="DEBUG"/> </logger> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > <param name="File" value="log-file.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header] "/> <param name="Footer" value="[Footer] "/> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> </log4net> </configuration> 第四步:在程序使用。 log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器 log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log 这样就将信息同时输出到控制台和写入到文件名为“log-file.txt”的文件中,其中“log-file.txt”文件的路径是当前程序运行所在目录;也可以定义为绝对路径,配置如: <param name="File" value="C:/log-file.txt" />就写入C盘根目录下log-file.txt文件中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值