log4net简明教程

来源:互联网 发布:mac玩dota2是什么体验 编辑:程序博客网 时间:2024/06/05 11:58

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>

                   <levelvalue="WARN" />

                   <appender-refref="LogFileAppender" />

                   <appender-refref="ConsoleAppender" />

   </root>

 

   <logger name="MyLogger">

     <level value="DEBUG"/>

   </logger>

 

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

   <appender name="LogFileAppender"

            type="log4net.Appender.FileAppender" >

 

                   <paramname="File" value="log-file.txt" /><!-- file name islog-file.txt -->

                   <paramname="AppendToFile" value="true" />

 

                   <!--define format -->

                   <layouttype="log4net.Layout.PatternLayout">

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

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

                            <paramname="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.ILoglogger = 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(newSystem.IO.FileInfo("MyLogger.Config"));

            log4net.ILoglogger = log4net.LogManager.GetLogger("MyLogger");

            logger.Debug("test debug message");

            logger.Info("test info message");

        }

   }

 

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

原创粉丝点击