Как записать данные Byte[] в log4net с помощью AdoNetAppender
Я хочу записать сжатую gzip строку, которая будет в двоичном Byte[]
формат, в [varbinary](max)
Столбец таблицы SQL с использованием log4net 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 ответа
Решение
Я думаю, что лучший способ записать ваш двоичный файл Byte[] - преобразовать его в строку base64. Нет способа передать тип Byte[] в качестве значения в методы ведения журнала log4net.
Вы можете преобразовать вашу строку в Byte[] в вашем CommandText следующим образом:
<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)) )"/>