我有一个(工作)Appender,它位于同一解决方案的不同项目中。
我可以从该解决方案中的其他项目访问该Appender,但所有其他项目都无法在日志中显示错误:
log4net:错误无法创建[my.Backend.AzureAppender]类型的Appender [AzureAppender]。
报告的错误如下。 System.TypeLoadException:无法加载类型[my.Backend.AzureAppender]。试过装配[log4net,Version = 1.2.15.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a]和所有已加载的程序集
存在对my.Backend的引用。
Appender的内容如下:
<appender name="AzureAppender" type="my.Backend.AzureAppender">
<FileName>web.log</FileName>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms [%t] %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
答案 0 :(得分:4)
如果您的dll尚未加载,则可能需要更改类型以包含dll的名称。
<appender name="AzureAppender" type="my.Backend.AzureAppender, mydllName">
这应该告诉log4net加载名为mydllName.dll的dll,然后在其中查找名为my.Backend.AzureAppender的类型。
如果失败,您可以尝试为该类型添加完整的AssemblyQualifiedName。
答案 1 :(得分:0)
您必须将包含my.Backend.AzureAppender的dll部署到项目的bin文件夹中。我确定它不见了。原因是您的代码中没有直接引用此dll,因此它不会复制到您的输出bin目录。