在asp.net下将log4net配置成可log到ms sql

log4net是一个优秀的开源日志项目,现将本人使用写成一个demo,如下

0:准备
去http://logging.apache.org/,可下载log4net,最新为1.2版本,
建立一个asp.net web 项目,并将log4net.dll添加到引用

1:建立数据表
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:编写配置文件

 1<configuration>
 2<configsections>
 3<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"></section>
 4</configsections>
 5<system.web>
 6<!--   
 7......   
 8\-->
 9</system.web>
10<log4net>
11<root>
12<level value="ALL"></level>
13<appender-ref ref="ADONetAppender"></appender-ref>
14</root>
15<!--   
16<logger name="testApp.Logging">   
17<level value="ALL"/>   
18<appender-ref ref="ADONetAppender" />   
19  
20</logger>   
21\-->
22<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
23<buffersize value="10"></buffersize>
24<connectiontype value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"></connectiontype>
25<connectionstring value="server=localhost;database=demo;user id=sa;password=123456"></connectionstring>
26<commandtext value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"></commandtext>
27<parameter>
28<parametername value="@log_date"></parametername>
29<dbtype value="DateTime"></dbtype>
30<layout type="log4net.Layout.RawTimeStampLayout"></layout>
31</parameter>
32<parameter>
33<parametername value="@thread"></parametername>
34<dbtype value="String"></dbtype>
35<size value="255"></size>
36<layout type="log4net.Layout.PatternLayout">
37<conversionpattern value="%thread"></conversionpattern>
38</layout>
39</parameter>
40<parameter>
41<parametername value="@log_level"></parametername>
42<dbtype value="String"></dbtype>
43<size value="50"></size>
44<layout type="log4net.Layout.PatternLayout">
45<conversionpattern value="%level"></conversionpattern>
46</layout>
47</parameter>
48<parameter>
49<parametername value="@logger"></parametername>
50<dbtype value="String"></dbtype>
51<size value="255"></size>
52<layout type="log4net.Layout.PatternLayout">
53<conversionpattern value="%logger"></conversionpattern>
54</layout>
55</parameter>
56<parameter>
57<parametername value="@message"></parametername>
58<dbtype value="String"></dbtype>
59<size value="4000"></size>
60<layout type="log4net.Layout.PatternLayout">
61<conversionpattern value="%message"></conversionpattern>
62</layout>
63</parameter>
64<parameter>
65<parametername value="@exception"></parametername>
66<dbtype value="String"></dbtype>
67<size value="2000"></size>
68<layout type="log4net.Layout.ExceptionLayout"></layout>
69</parameter>
70</appender>
71</log4net>
72</configuration>

特别说明

1<buffersize value="10"></buffersize>

,这是log信息记录的缓冲大小,(比如只有log信息记录达到10,
才会将log信息记录写入数据库)

3:在Global.asax.cs中
protected void Application_Start(Object sender, EventArgs e)
{
//读取配置信息
log4net.Config.DOMConfigurator.Configure();
}
4:一个使用log的demo类
using System;

namespace Log
{
///

1<summary>   
2/// MyLog 的摘要说明。   
3/// </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错误");
}
}
}
5:资源:
my blog:http://tomch.donews.net/tomch/posts/22457.aspx
主站 logging.apache.org /
学习使用log4net的文章 www.ondotnet.com/pub/a/dotnet/2003/06/16/log4net.html

2472-Log.rar

Published At
Categories with Web编程
Tagged with
comments powered by Disqus