2016-02-16 2 views
0

Je veux connecter une chaîne compressée au format gzip, qui sera au format binaire Byte[], dans une colonne de table [varbinary](max) SQL à l'aide de AdoNetAppender log4net. Mes questions:Comment log octet [] données en utilisant log4net AdoNetAppender

1) Est-ce possible? Si oui, qu'est-ce que je dois dbType utiliser comme paramètre dans mon fichier de configuration ci-dessous:

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

2) Y at-il d'autres solutions que la conversion de la valeur à une chaîne, puis L'exploitation du bois.

Répondre

2

Je pense que la meilleure façon de vous connecter binaire Byte [] est de le convertir en base64. Il n'existe aucun moyen de transmettre un type Byte [] en tant que valeur aux méthodes de consignation log4net.

0

Vous pouvez convertir votre chaîne en octets [] dans votre CommandText comme ceci:

<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)))"/>