Log4Net 无法写入到SqlServer

直接进入正题:

  今天在测试使用Log4Net写入到数据库的时候,发现一直无法写入到数据库中,而且程式也没有报任何错误。

  配置信息如下:

 <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <bufferSize value="100" />
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <connectionString value="data source=.;initial catalog=test2;integrated security=false;persist security info=True;User ID=sa;Password=123456" />
     <commandText value="INSERT INTO Log2 ([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>
View Code

  我使用的是4.0的框架,所以我以为是 <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />这句话出现了错误,将其修改成了

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data,Version=4.0.30319.33440,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>,结果还是没有数据。

  后来我在网上查找了一下发现了这样一句话<bufferSize value="10" />,表示是记录10 条到缓冲区,满10条后再写入SQL server ,也就是说我写的数据必须达到了10条,才会统一记录到数据库中,后来我修改了<bufferSize value="100" />的value值,将其改为了1,再测试插入成功。

  截图如下

  

希望可以帮到大家!谢谢!

原文地址:https://www.cnblogs.com/wujiadexingfu/p/7467823.html