log4net AdoNetAppender截断消息文本

时间:2013-10-03 06:35:38

标签: log4net log4net-configuration

我有一个问题,即无论我做什么,我的消息字段都被截断到大约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>

对于消息参数,我尝试过大小​​值“-1”,“9999999”,它完全没有区别,它总是只存储42k。 0正确地抛出异常。

我也试过完全删除size元素但是通过异常删除了。

对于dbType我也尝试过AnsiString,但那里没有运气。

Logs表中的消息字段定义为varchar(MAX)

Message varchar(MAX)

数据库:SQL Server 2012 Log4net:1.2.11 .net Framework:4.0

有什么想法吗?

0 个答案:

没有答案