<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">原創文章,轉載必需注明出處:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/log4net-%E4%B8%89-%E4%B9%8B%E8%AE%B0%E5%BD%95%E6%97%A5%E5%BF%97%E5%88%B0%E6%95%B0%E6%8D%AE%E5%BA%93/</span>
前面兩篇短文向大家介紹了如何使用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語句以及語句中的參數就可以使用了