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

博客提及了2472-Log.rar,但未给出更多信息技术相关关键信息。
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:编写配置文件
<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>

特别说明<bufferSize value="10" />,这是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
     {
          /// <summary>
          /// MyLog 的摘要说明。
          /// </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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值