如何使用 AdoNetAppender 在 log4net 中记录 Byte[] 数据
How to log Byte[] data in log4net using AdoNetAppender
我想使用 log4net 的 [=13] 在 [varbinary](max)
SQL table 列中记录二进制 Byte[]
格式的 gzip 压缩字符串=].
我的问题:
1) 这可能吗?如果是这样,我需要在下面的配置文件中使用什么 dbType
作为参数:
<parameter>
<parameterName value="@Data" />
<dbType value="String" />
<size value="2147483647" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="Data" />
</layout>
</parameter
2) 除了将值转换为字符串然后记录它之外,还有其他选择吗?
我认为记录二进制 Byte[] 的最佳方法是将其转换为 base64 字符串。无法将 Byte[] 类型作为值传递给 log4net 日志记录方法。
您可以像这样在 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)) )"/>
我想使用 log4net 的 [=13] 在 [varbinary](max)
SQL table 列中记录二进制 Byte[]
格式的 gzip 压缩字符串=].
我的问题:
1) 这可能吗?如果是这样,我需要在下面的配置文件中使用什么 dbType
作为参数:
<parameter>
<parameterName value="@Data" />
<dbType value="String" />
<size value="2147483647" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="Data" />
</layout>
</parameter
2) 除了将值转换为字符串然后记录它之外,还有其他选择吗?
我认为记录二进制 Byte[] 的最佳方法是将其转换为 base64 字符串。无法将 Byte[] 类型作为值传递给 log4net 日志记录方法。
您可以像这样在 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)) )"/>