Log4net是基于.net开发的一款非常著名的记录日志开源组件。他最早是20017月由NeoWorks Limited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件-log4jLog4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的样式,将日志输出到不同的媒介。

Log4net可以从 http://logging.apache.org/log4net/downloads.html 网站下载最新版本。

 

Log4net主要由五个部分组成,分别为LoggerAppenders, Filters, Layouts Object Renders其中

  1. Logger记录日志的分类。Log4net能够以多种方式输出日志。支持的日志输出常用的主要媒介有数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite,控制台,文件,事件日志(可以用事件查看器查看)和邮件等多种方式。
  2. Appenders决定日志输出的方式。Log4net目前支持的输出方式很多,包括文本、控制台、系统事件、数据库等等。

     

     

  3. Filter可以按照不同的标准控制日志的输出。根据不要级别的日志采用相应的记录方式。日志优先级别为:FATAL > ERROR > WARN > INFO > DEBUG

  4. Layouts控制日志显示的格式样式。

  5. Object Renderers则控制log4net按照用户定义的标准输出日志消息。

Quick Start

  1. 引入DLL
  2. web.config里增加配置节   <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

  3.   增加配置

     <log4net debug="false">

        <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >

          <param name="File" value="config/Applog.txt" />

          <param name="datePattern" value="yyyy-MM-dd HH:mm" />

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

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

            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />

          </layout>

        </appender>

        <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

          <bufferSize value="100" />

          <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

          <connectionString value="data source=server;initial catalog=database;integrated security=false;persist security info=True;User ID=user;Password=pwd" />

          <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />

          <parameter>

            <parameterName value="@log_date" />

            <dbType value="DateTime" />

            <layout type="log4net.Layout.RawTimeStampLayout" />

          </parameter>

          <parameter>

            <parameterName value="@thread" />

            <dbType value="String" />

            <size value="255" />

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

              <conversionPattern value="%thread" />

            </layout>

          </parameter>

          <parameter>

            <parameterName value="@log_level" />

            <dbType value="String" />

            <size value="50" />

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

              <conversionPattern value="%level" />

            </layout>

          </parameter>

          <parameter>

            <parameterName value="@logger" />

            <dbType value="String" />

            <size value="255" />

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

              <conversionPattern value="%logger" />

            </layout>

          </parameter>

          <parameter>

            <parameterName value="@message" />

            <dbType value="String" />

            <size value="4000" />

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

              <conversionPattern value="%message" />

            </layout>

          </parameter>

          <parameter>

            <parameterName value="@exception" />

            <dbType value="String" />

            <size value="2000" />

            <layout type="log4net.Layout.ExceptionLayout" />

          </parameter>

        </appender>

        <root>

          <level value="DEBUG" />

          <appender-ref ref="LogFileAppender" />

          <appender-ref ref="AdoNetAppender" />

        </root>

     </log4net>

  4.  启动 Global.asax里 Application_Startlog4net.Config.XmlConfigurator.Configure();

  5.  调用

    private static readonly log4net.ILog log = log4net.LogManager.GetLogger("Log-Error");

    log.Error("出现错误!");

 

整理的文档也发上来:/Files/rene1018/Log4Net.rar

 

 

 

 

posted on 2009-06-24 11:19  xiaohc  阅读(1431)  评论(1编辑  收藏  举报