【问题标题】:How to log Byte[] data in log4net using AdoNetAppender如何使用 AdoNetAppender 在 log4net 中记录 Byte[] 数据
【发布时间】:2016-05-28 02:40:52
【问题描述】:

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

我的问题:

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

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

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

【问题讨论】:

    标签: c# log4net adonetappender


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以像这样在 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)) )"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-23
        • 2010-09-12
        • 2017-11-05
        • 2019-04-08
        • 2015-04-01
        • 2012-04-29
        • 2019-11-11
        • 1970-01-01
        相关资源
        最近更新 更多