1

かなり簡単な質問です。

DbType が XML のフィールドを持つ SQL Server データベースにテーブルがあります。

カスタムアペンダーを作成せずに、Log4Net の XML レイアウトの形式を使用してそのフィールドに書き込みたいと思います。同梱の AdoNetAppender を使用します。

以下は私の現在のコードですが、ログを記録しようとするとレコードが挿入されますが、「例外」フィールドは空白になります。

(この質問のためにコードを簡略化しました。以前は、パターン レイアウトを使用して他の多くのフィールドに書き込みを行っていました。アペンダーが機能し、log4net が適切に構成されていることを確認しました。ログを記録しようとしています。 log4net に含まれている XMLLayout を使用して、XML の dbtype に変換します。)

<appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
  <bufferSize value="1" />
  <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <ConnectionStringName value="CONNECTIONSTRING"/>
  <commandText value="dbo.TestLog_Insert @Exception = @Exception" />
  <parameter>
    <parameterName value="@Exception"/>
    <dbType value="XML"/>
    <size value="4000"/>
    <layout type="log4net.Layout.XMLLayout" value="%exception" />
  </parameter>
  <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="INFO"/>
    <acceptOnMatch value="true"/>
  </filter>
  <filter type="log4net.Filter.DenyAllFilter"/>
</appender>
4

0 に答える 0