You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

初始化Google Stackdriver Appender时遇IAppender类型转换错误求助

log4net配置Google Stackdriver Appender时类型转换错误的解决办法

问题详情

我在log4net配置中添加了Google Stackdriver Appender,但初始化时抛出类型转换异常,提示无法将Google.Cloud.Logging.Log4Net.GoogleStackdriverAppender转换为log4net.Appender.IAppender。

配置代码

<appender name="CloudLogger" type="Google.Cloud.Logging.Log4Net.GoogleStackdriverAppender,Google.Cloud.Logging.Log4Net">
  <layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json">
    <decorator type="log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json" />
    <member value="date:date" />
    <member value="level:level" />
    <member value="logger:logger" />
    <member value="message:messageObject" />
    <member value="exception:exception" />
  </layout>
  <projectId value="playground" />
  <logId value="test-api" />
</appender>

错误信息

log4net: Loading Appender [CloudLogger] type: [Google.Cloud.Logging.Log4Net.GoogleStackdriverAppender,Google.Cloud.Logging.Log4Net]
log4net:ERROR Could not create Appender [CloudLogger] of type [Google.Cloud.Logging.Log4Net.GoogleStackdriverAppender,Google.Cloud.Logging.Log4Net]. Reported error follows.
System.InvalidCastException: Unable to cast object of type 'Google.Cloud.Logging.Log4Net.GoogleStackdriverAppender' to type 'log4net.Appender.IAppender'.
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [CloudLogger] not found.

解决办法

  • 核对版本兼容性:Google.Cloud.Logging.Log4Net包对log4net有版本依赖,确保你安装的log4net版本和该包要求匹配(比如最新版通常要求log4net 2.0.15及以上),可查看NuGet包的依赖说明确认。
  • 统一程序集引用:检查项目是否同时引用了不同版本的log4net,比如项目直接引用一个版本,而Google.Cloud.Logging.Log4Net间接引用另一个版本,导致类型加载冲突。通过NuGet管理器统一所有相关包的版本。
  • 清理重建项目:编译缓存可能引发程序集加载异常,手动删除项目的bin和obj目录,再重新构建解决方案。
  • 添加绑定重定向:若存在版本冲突,在App.config/Web.config中添加log4net的绑定重定向,确保所有引用指向同一版本:
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-2.0.15.0" newVersion="2.0.15.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    
  • 重新安装相关包:卸载并重新安装Google.Cloud.Logging.Log4Net和log4net包,确保所有依赖文件正确下载并引用到项目中。

内容的提问来源于stack exchange,提问作者Nick__Dudas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:31:15