Как записать данные 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)) )"/>
Другие вопросы по тегам