2012-04-10 1 views
0

にログ情報を挿入するためのSPSを使用します。データベースへ。私は通常、接続文字列、SQLクエリ、すべての設定で指定されているパラメータを参照してください。私は、ロギングエラーやその他の情報については<strong>ADO.NETのAppender</strong><strong>のlog4netの</strong>を使用していますlog4netの

コードで行うことはできますか?私は自分のアプリケーションにデータベースコンポーネントを持っており、データベースとのすべてのやりとりはそれ自身で気をつけなければなりません。私がlog4netを使用して詳細をログに記録しようとすると、データベースにログ情報を記録するSPを呼び出すデータベースコンポーネントからlogメソッドを呼び出す必要があります。 log4netを使ってこれをどうすれば実現できますか?

答えて

0

私が正しく理解していれば、log4netがストアドプロシージャを直接呼び出さないようにする必要があります。その場合は、独自のappenderを実装する必要があります。 log4netのソースコードをダウンロードして、既存のアペンダーを調べることをお勧めします。

この場合、アペンダーをコードで設定する必要はないと思います。しかしそうすることは可能です。あなたがGoogleの場合、このような多くの例があります:How to configure log4net programmatically from scratch (no config)

1

これは私が使用しているストアドプロシージャを直接呼び出すアペンダー設定です。あなたのDALコードを呼び出すことはできませんが、ストアドプロシージャを呼び出すことができます。

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
<bufferSize value="1" /> 
<threshold value="INFO" /> 
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
<connectionString value="data source=<your_server>;initial catalog=<database_name>;User ID=<user_id>;Password=<pwd>" /> 
<commandText value="dbo.spLogInsert" /> 
<commandType value="StoredProcedure" /> 
<parameter> 
<parameterName value="@log_date_utc" /> 
<dbType value="DateTime" /> 
<layout type="log4net.Layout.RawTimeStampLayout"> 
<conversionPattern value="%utcdate" /> 
</layout> 
</parameter> 
<parameter> 
<parameterName value="@log_date_local" /> 
<dbType value="DateTime" /> 
<layout type="log4net.Layout.RawTimeStampLayout"> 
<conversionPattern value="%date" /> 
</layout> 
</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> 
<parameter> 
<parameterName value="@server" /> 
<dbType value="String" /> 
<size value="2000" /> 
<layout type="log4net.Layout.PatternLayout"> 
<conversionPattern value="%property{log4net:HostName}"/> 
</layout> 
</parameter> 
</appender> 
関連する問題

 関連する問題