Net Core使用Log4net的SqlServer AdoNetAppender 报程序集错误
原因
Net Core 尚不支持Log4net的AdoNetAppender
报错现象
Could not create Appender [AdoNetAppender] of type [log4net.Appender.AdoNetAppender]. Reported error follows.
System.TypeLoadException: Could not load type 'log4net.Appender.AdoNetAppender' from assembly 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'.
at System.Reflection.RuntimeAssembly.GetType(QCallAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type, ObjectHandleOnStack keepAlive, ObjectHandleOnStack assemblyLoadContext)
at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
at log4net.Util.SystemInfo.GetTypeFromString(Assembly relativeAssembly, String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [AdoNetAppender] not found.
解决方法
- 安装程序集 MicroKnights.Log4NetAdoNetAppender
NuGet包管理器:
PM> Install-Package MicroKnights.Log4NetAdoNetAppender -Version 2.1.0 - 在Log4net配置文件中更改/替换类型和程序集名称
原来的
<appender name=“AdoNetAppender” type=“log4net.Appender.AdoNetAppender”>
改成下面的
<appender name=“AdoNetAppender” type=“MicroKnights.Logging.AdoNetAppender, MicroKnights.Log4NetAdoNetAppender”>
参考资料
.Net Standard 1.3 AdoNetAppender