首 页  -  技术分享  - Log4Net(三)之记录日志到数据库

Log4Net(三)之记录日志到数据库

分享者:董昌顺     2016-02-04

前面两篇短文向大家介绍了如何使用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语句以及语句中的参数就可以使用了。