配置Log4net把日志写到SQLServer数据库

来源:互联网 发布:淘宝代购手表靠谱吗 编辑:程序博客网 时间:2024/05/21 17:49

Refer to High Performance Logging using log4net

Log4netConfig


首先创建一张用于存储log的表:

CREATETABLE[dbo].[RegistrationLog]
(
   LogIdintIDENTITY(1,1)notnull,
    LogDate[datetime]NOTNULL ,
    Thread[varchar](50) NOTNULL,
   LogLevel[varchar](200) NOTNULL,
   Logger[varchar](200)NOTNULL,
   LogMessage[varchar](2000)NOTNULL,
   Exception[varchar](4000)NULL
)
GO

然后配置log4net的xml配置文档:

  <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=[YourDBServer];database=[DBName];uid=[username];pwd=[password];timeout=300;" />
        <commandText value="INSERT INTO RegistrationLog ([LogDate],[Thread],[LogLevel],[Logger],[LogMessage],[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="50" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%t" />
            </layout>  
        </parameter>
        <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="200" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%p" />
            </layout>  
        </parameter>
        <parameter>
            <parameterName value="@logger" />
            <dbType value="String" />
            <size value="200" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%logger" />
            </layout>  
        </parameter>
            <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="2000" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%m" />
            </layout>  
        </parameter>
            <parameter>
            <parameterName value="@exception" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.ExceptionLayout"/>
        </parameter>
        <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="ERROR" />
      </filter>
    </appender>

阅读全文
0 0