我正在使用 Microsoft.Extensions.Logging.Log4Net.AspNetCore (AspNetCore 2.2),并且我想使用 AdoNetAppender,但似乎唯一的选择是自己制作或使用 MicroKnights.Log4NetAdoNetAppender。
不幸的是,Microsoft.Extensions.Logging.Log4Net.AspNetCore是一个nuget包,仅连接Microsoft.Extensions.Logging系统和log4net库,但没有具体实现任何东西来使现有的log4net与 .NET Core 应用程序兼容的附加程序。
也许您可以在 log4net 官方问题跟踪器提出请求,要求更新附加程序/log4net 库。
对于那些也遇到同样问题的人,似乎现在支持 AdoNetAppender,因为我能够使其仅与 microsoft 包“Microsoft.Extensions.Logging.Log4Net.AspNetCore”一起使用。
帮助我找到错误的是查看上面提到的 MicroKnights.Log4NetAdoNetAppender github 页面。他们在那里提到 SqlConnection 类在某个时候改变了位置。因此,按照他们的建议更改“connectionType”元素值解决了我的问题。
之前(不工作):
<connectionType value="System.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
(工作后):
<connectionType value="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient, Version=1.0.0.0,Culture=neutral,PublicKeyToken=23ec7fc2d6eaa4a5"/>
我从 log4net 官方文档复制的旧的非功能版本:https://logging.apache.org/log4net/release/config-examples.html
注意:我在.net8上,检查了Microsoft.Data.SqlClient包后,我更新了上面的内容以匹配最新版本:
<connectionType value="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient, Version=5.0.0.0,Culture=neutral,PublicKeyToken=23ec7fc2d6eaa4a5"/>