如何使用AdoNetAppender在log4net中记录Byte []数据

时间:2016-02-16 17:19:08

标签: c# log4net adonetappender

我想使用log4net' s Byte[][varbinary](max) SQL表格列中记录gzip压缩的字符串,该字符串将采用二进制AdoNetAppender格式。

我的问题:

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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)) )"/>