2012-04-05 19 views
5

Làm cách nào để cập nhật phần commandText và tham số cho quy trình được lưu trữ để tôi có thể ghi nhật ký lỗi vào SQL Server qua log4net?Làm thế nào để sử dụng được lưu trữ proc bên trong cấu hình log4net cho SQL Server để đăng nhập

Tôi đang sử dụng SQL Server 2008, và cấu hình appender của tôi trông như thế này:

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

Trả lời

12

Thử:

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

Các CommandText là một trong hai một tuyên bố chuẩn bị hoặc một thủ tục được lưu trữ. Mỗi tham số cho câu lệnh được chuẩn bị hoặc thủ tục được lưu trữ được chỉ định với tên của nó, loại cơ sở dữ liệu và bố cục hiển thị giá trị cho tham số.

+0

Hoạt động tuyệt vời .. cảm ơn –

Các vấn đề liên quan