【问题标题】:log4net: Error on loading custom appenderlog4net:加载自定义附加程序时出错
【发布时间】:2010-01-22 04:48:13
【问题描述】:

我扩展了 AppenderSkeleton 以创建一个名为 HTTPAppender 的自定义附加程序,但在 xml 文件中对它的引用有些问题。 Log4Net 显然无法找到我的自定义附加程序。有没有办法从 xml 文件中引用它以指向我的项目,或者我是否必须将我的自定义 appender 的源代码添加到 log4net 中以便将其打包在 log4net.dll 中?

我在调试时在立即窗口中收到以下错误:

log4net:ERROR XmlHierarchyConfigurator: 无法创建类型为 [HTTPAppender.HTTPAppender,HTTPAppender] 的 Appender [HTTPAppender]。报告的错误如下。
System.IO.FileNotFoundException:无法加载文件或程序集“HTTPAppender”或其依赖项之一。该系统找不到指定的文件。
文件名:'HTTPAppender'
   在 System.RuntimeTypeHandle._GetTypeByName(字符串名称,布尔 throwOnError,布尔 ignoreCase,布尔反射,StackCrawlMark 和 stackMark,布尔 loadTypeFromPartialName)
   在 System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔 throwOnError,布尔 ignoreCase,布尔反射,StackCrawlMark 和 stackMark)
...等

这是 xml 文件的 log4net 部分:

<log4net> <appender name="HTTPAppender" type="HTTPAppender.HTTPAppender,HTTPAppender"> <evaluator type="log4net.Core.LevelEvaluator,log4net"> <threshold value="WARN"/> </evaluator> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="#%level - %message" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="HTTPAppender" /> </root> <logger name="log4netErrorLog" > <level value="DEBUG" /> <appender-ref ref="HTTPAppender" /> </logger> </log4net>

【问题讨论】:

    标签: log4net appender


    【解决方案1】:
    【解决方案2】:

    如果您使用任何非标准程序集,请将它们与您的程序集一起放在应用程序目录中。如果这没有帮助,请尝试为您的程序集提供一个强名称并在 log4net 配置文件中使用全名。您也可以尝试将其放入 GAC。

    【讨论】:

    【解决方案3】:

    我假设找不到该程序集。程序集的名称确实是“HTTPAppender”吗?它与调用程序集的路径是否相同?

    【讨论】:

      【解决方案4】:

      我也遇到了同样的问题。如果您的自定义 appender 项目使用某个 log4net.dll,而您将使用自定义 appender 的项目使用不同的 log4net.dll,它将无法找到它。

      【讨论】:

        【解决方案5】:

        我也陷入了这个问题,最后我解决了。

        解决方案是 HTTPAppender 类应该有一个默认构造函数

        我确信这个错误 "Could not create Appender" 的出现是因为没有默认构造函数

        【讨论】:

          【解决方案6】:

          我最近遇到了同样的问题。我通过在类型的完全限定名称之后添加程序集名称并在类型属性中使用逗号来修复它。请看下文。

          <log4net>
              <appender name="LogFileAppender" type="TestHarness.Model.CustomRollingFileAppender, TestHarness.Model">
           </log4net>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-01-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多