Log4net是基于.net开发的一款非常著名的记录日志开源组件。他最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件-log4j。Log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的样式,将日志输出到不同的媒介。
Log4net可以从 http://logging.apache.org/log4net/downloads.html 网站下载最新版本。
Log4net主要由五个部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders。其中
- Logger记录日志的分类。Log4net能够以多种方式输出日志。支持的日志输出常用的主要媒介有数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite,控制台,文件,事件日志(可以用事件查看器查看)和邮件等多种方式。
-
Appenders决定日志输出的方式。Log4net目前支持的输出方式很多,包括文本、控制台、系统事件、数据库等等。
-
Filter可以按照不同的标准控制日志的输出。根据不要级别的日志采用相应的记录方式。日志优先级别为:FATAL > ERROR > WARN > INFO > DEBUG
-
Layouts控制日志显示的格式样式。
-
Object Renderers则控制log4net按照用户定义的标准输出日志消息。
Quick Start
- 引入DLL
-
web.config里增加配置节 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
-
增加配置
<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>
-
启动 Global.asax里 Application_Start:log4net.Config.XmlConfigurator.Configure();
-
调用
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("Log-Error");
log.Error("出现错误!");
整理的文档也发上来:/Files/rene1018/Log4Net.rar