log4net是一個(gè)優(yōu)秀的開(kāi)源日志項(xiàng)目,現(xiàn)將本人使用寫(xiě)成一個(gè)demo,如下
0:準(zhǔn)備 去http://logging.apache.org/,可下載log4net,最新為1.2版本, 建立一個(gè)asp.net web 項(xiàng)目,并將log4net.dll添加到引用
1:建立數(shù)據(jù)表 CREATE TABLE [dbo].[Log] ( [Id] [int] IDENTITY (1, 1) NOT NULL, [Date] [datetime] NOT NULL, [Thread] [varchar] (255) NOT NULL, [Level] [varchar] (50) NOT NULL, [Logger] [varchar] (255) NOT NULL, [Message] [varchar] (4000) NOT NULL, [Exception] [varchar] (2000) NULL )
2:編寫(xiě)配置文件 <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections>
<system.web> <!-- ...... --> </system.web>
<log4net>
<root> <level value="ALL" /> <appender-ref ref="ADONetAppender" /> </root>
<!-- <logger name="testApp.Logging"> <level value="ALL"/> <appender-ref ref="ADONetAppender" /> </logger> -->
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <bufferSize value="10" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <connectionString value="server=localhost;database=demo;user id=sa;password=123456" /> <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>
</log4net> </configuration>
特別說(shuō)明<bufferSize value="10" />,這是log信息記錄的緩沖大小,(比如只有l(wèi)og信息記錄達(dá)到10, 才會(huì)將log信息記錄寫(xiě)入數(shù)據(jù)庫(kù))
3:在Global.asax.cs中 protected void Application_Start(Object sender, EventArgs e) { //讀取配置信息 log4net.Config.DOMConfigurator.Configure(); } 4:一個(gè)使用log的demo類 using System;
namespace Log { /// <summary> /// MyLog 的摘要說(shuō)明。 /// </summary> public class MyLog { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyLog)); public static void LogInfo() { log.Info("log日志"); }
public static void LogError() { log.Info("log錯(cuò)誤"); } } } 5:資源: my blog:http://tomch.donews.net/tomch/posts/22457.aspx 主站 logging.apache.org/ 學(xué)習(xí)使用log4net的文章 www.ondotnet.com/pub/a/dotnet/2003/06/16/log
|