log4net AdoNetAppender截断消息文本

log4net AdoNetAppender截断消息文本,log4net,log4net-configuration,Log4net,Log4net Configuration,我有一个问题,我的消息字段被截断到大约42k,无论我做什么 下面是一个简短的片段来说明我的配置: <log4net> <appender name="DbLogs" type="log4net.Appender.AdoNetAppender"> <connectionType value="..." /> <bufferSize value="0"/> <filter type="log4net.F

我有一个问题,我的消息字段被截断到大约42k,无论我做什么

下面是一个简短的片段来说明我的配置:

<log4net>
    <appender name="DbLogs" type="log4net.Appender.AdoNetAppender">
      <connectionType value="..." />
      <bufferSize value="0"/>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
      <connectionString value="Data Source=..." />
      <commandText value="INSERT INTO Logs ([Date],[Thread],[Level],[Logger],[Line],[Location],[Type],[Message],[Exception], [Username], [Guid]) VALUES (@log_date, @thread, @log_level, @logger, @line, @location, @type, @message, @exception, @current_username, @current_guid)" />
      <parameter>
        ...
      </parameter>
      ...
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="-1" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
      ...
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="DbLogs" />
    </root>
  </log4net>
数据库:SQL Server 2012 Log4net:1.2.11 .net Framework:4.0


有什么想法吗

值得一提的是,使用与您相同的参数(即size-1和dbType字符串),我能够使用log4net 1.2.11在SQLServer2005数据库中向定义为varchar(max)的消息写入100万字节。此外,您是否确定能够将大小设置为“0”写入数据库,因为这不是一个有效值?抱歉@sgmoore,将其设置为0确实会导致log4net引发异常。我会编辑这篇文章。我还将添加更多关于我们环境的详细信息。可能的重复我也遇到了完全相同的问题,我的字段是varchar(MAX),log4net为字段设置为-1,我的代码有一个“字符串”,但字段被截断为大约43000个字符。“可能重复”的消息与它简单地说-1是答案不同。如果其他人想知道为什么在Sql Server Management Studio中看不到大型日志消息,那是因为SSMS截断了“查询到网格”结果,所以我只看到43680个字符。在查询结果上使用“将结果另存为…”并将其发送到一个文件可以获得整个消息。
Message varchar(MAX)