現在のプロジェクト内に log4net をセットアップして、AdoNetAppender を使用してログ エントリを SQL Server データベースに書き込みます。これはすべて正しく機能しますが、何らかの理由で機能させるには、System.Data.dll で Copy Local を true に設定する必要があります。この DLL が bin ディレクトリに存在しない場合、log4net は SQL Server に出力しません。欠落している DLL に関するエラーがスローされます。
これは log4net のバグですか? System.Data.dll は .Net フレームワーク コンポーネントであるため、log4net は GAC でそれを見つけることができると思います。
参考までに、log4net 1.2.10.0 と .Net 4.5 を使用しています。
編集- 他の誰かがこの問題に遭遇した場合に読みやすくするために、私が使用していた元の XML 構成では、connectionType を次のように定義しました。
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data" />
次のように変更すると、問題が修正されました。
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />