Log4Net之记录日志到数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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语句以及语句中的参数就可以使用了。
以上是关于Log4Net之记录日志到数据库的主要内容,如果未能解决你的问题,请参考以下文章
Log4net 可以在新创建的 AppDomain 中运行吗
Log4net系列一: asp.net 配置 Log4net 之文本格式输出