0

我想在使用 log4net 的 SQL 表列中记录一个 gzip 压缩的字符串,它将是二进制Byte[]格式。[varbinary](max)AdoNetAppender

我的问题:

1)这可能吗?如果是这样,dbType我需要在下面的配置文件中用作参数:

   <parameter>
    <parameterName value="@Data" />
    <dbType value="String" />
    <size value="2147483647" />
    <layout type="log4net.Layout.RawPropertyLayout">
      <key value="Data" />
    </layout>
  </parameter

2)除了将值转换为字符串然后记录它之外,还有其他选择吗?

4

2 回答 2

2

我认为记录二进制 Byte[] 的最佳方法是将其转换为 base64 字符串。无法将 Byte[] 类型作为值传递给 log4net 日志记录方法。

于 2016-02-16T19:35:10.437 回答
0

您可以在 CommandText 中将字符串转换为 Byte[],如下所示:

<commandText value="INSERT INTO [LogServer]
    ([Date], [Logger], [message], [Exception], [BinaryMessage], [BinaryException]) 
    VALUES
    (@log_date, @logger, @message, @exception, cast(@message as varbinary(max)), cast(@exception as varbinary(max)) )"/>
于 2016-11-03T15:08:44.187 回答