log4netでSQLServerCompact Edition(v4.0)を使用しようとしています。ここに素晴らしいガイドがあります。Compact Edition 3.5を使用しますが、ほとんどの手順は同じである必要があります。
そこで、MVCWebアプリの「Log」テーブルを使用して「App_Data」内にSQLServer CE 4.0データベースを作成し、System.Data.SqlServerCeの「copylocal」がtrueであることを確認しました。また、app_dataフォルダーを考慮して接続文字列を変更しました。
私のアペンダーは次のようになります。
<appender name="SqlCeAppender" type="log4net.Appender.AdoNetAppender">
<connectionType value="System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe" />
<connectionString value="Data Source=|DataDirectory|\='log4net.sdf'" />
<commandText
value="INSERT INTO Log
([Date],[Thread],[Level],[Logger],[Message],
[Exception], [UserName], [Custom])
VALUES
(@log_date, @thread, @log_level, @logger, @message,
@exception, @username, @custom)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawUtcTimeStampLayout" />
</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="@username" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%username" />
</layout>
</parameter>
<parameter>
<parameterName value="@custom" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{Custom}" />
</layout>
</parameter>
</appender>
そして...何も起こりません-ログはありません。テキストファイルのアペンダーに切り替えると、ログが取得されるので、このアペンダーと関係がありますが、何がわかりません。誰か助けてもらえますか?