2012-04-05 19 views
5

¿Cómo actualizo el commandText y la sección de parámetros para el procedimiento almacenado para poder registrar los errores en SQL Server a través de log4net?Cómo usar el proceso almacenado dentro de la configuración de log4net para SQL Server para el registro

Estoy utilizando SQL Server 2008, y la configuración de mi appender se ve así:

<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> 
    <bufferSize value="100"/> 
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
    <connectionString value="server=MYSERVER; uid=MYUSER; pwd=MYPASS; database=MYDB"/> 
    <commandText 
    value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" 

    /> 
    <parameter> 
    <parameterName value="@log_date"/> 
    <dbType value="DateTime"/> 
    <layout type="log4net.Layout.RawTimeStampLayout"/> 
    </parameter> 
    <parameter> 
    <parameterName value="@thread"/> 
    <dbType value="String"/> <size value="255"/> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%thread"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@log_level"/> 
    <dbType value="String"/> 
    <size value="50"/> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@logger"/> 
    <dbType value="String"/> 
    <size value="255"/> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%logger"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@message"/> 
    <dbType value="String"/> 
    <size value="4000"/> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message"/> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@exception"/> 
    <dbType value="String"/> 
    <size value="2000"/> 
    <layout type="log4net.Layout.ExceptionLayout"/> 
    </parameter> 
</appender> 

Respuesta

12

pruebo:

<commandText value="StorProcName" /> 
<commandType value="StoredProcedure" /> 

<parameter> 
    <parameterName value="@log_date" /> 
    <dbType value="DateTime" /> 
    <layout type="log4net.Layout.RawTimeStampLayout" /> 
</parameter> 
... all parameters ... 

log4net online config examples page:

El CommandText es cualquiera una declaración preparada o un procedimiento almacenado. Cada parámetro de la declaración preparada o del procedimiento almacenado se especifica con su nombre, tipo de base de datos y un diseño que representa el valor del parámetro.

+0

Funciona bien .. gracias –

Cuestiones relacionadas