我们在当前项目中设置了 log4net,以使用 AdoNetAppender 将日志条目写入 SQL Server 数据库。这一切都正常工作,但出于某种原因,为了让它工作,我们必须在 System.Data.dll 上将 Copy Local 设置为 true - 如果 bin 目录中不存在此 DLL,则 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" />