Log4Net(三)之記錄日誌到數據庫

前面兩篇短文向大家介紹瞭如何使用log4net,以及如何將log4net記錄到文本文件中。下面本文將向大家介紹如何將log4net記錄到數據庫中。

經過前面的介紹,我想大家對使用log4net的過程已經很熟悉了,下面直接貼上log4net存日誌到數據庫的配置內容:

將前面log4net.config文件的root節點和appender節點替換爲下面的內容,

<root>
      <level value="ALL"/>
      <appender-ref ref="ADONetAppender"/>
    </root>
 
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      <bufferSize value="1"/>
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <connectionString value="Data Source=(local)\SQLSERVER;Initial catalog=HW-GuideToSite-dev;Integrated Security=False;Uid=sa;Pwd=*********;
" providerName="System.Data.SqlClient"/>
       <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文件,創建logger對象,使用logger的記錄日誌函數)。

和前面不同的地方是:你得在appender節點配置的連接字符串對應的數據庫中建立相應的log日誌表,本文的日誌表創建語句是:

CREATE TABLE [dbo].[Log](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Date] [datetime](7) NULL,
	[Thread] [nvarchar](255) NOT NULL,
	[Level] [nvarchar](20) NOT NULL,
	[Logger] [nvarchar](255) NOT NULL,
	[Message] [nvarchar](max) NOT NULL,
	[Exception] [nvarchar](max) NOT NULL
)

相對於保存日誌到文檔的配置來說,保存日誌到數據庫的配置非常的簡單,只需要配置好數據庫連接字符串,以及連接類型,另外設置好保存到log日誌表的insert語句以及語句中的參數就可以使用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章