2012-04-05 19 views
5

commandText ve saklı yordam için parametre bölümünü nasıl güncellerim, böylece hataları log4net üzerinden SQL Server'a kaydedebilirim?Kayıt için SQL Server için log4net yapılandırması içinde saklanan proc nasıl kullanılır?

SQL Server 2008 kullanıyorum ve benim appender yapılandırma şöyle görünür:

<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> 

cevap

12

deneyin:

<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:

CommandText ya olduğu Hazırlanmış bir ifade veya saklı yordam hazırlanan ifadesi veya saklı yordamına her parametre, adı, veritabanı türü ve parametrenin değerini veren bir düzen ile belirtilir.

+0

Harika çalışıyor .. teşekkürler –

İlgili konular