【问题标题】:Common.Logging for custom built log4netCommon.Logging 用于自定义构建的 log4net
【发布时间】:2011-03-21 13:56:03
【问题描述】:

如何配置使用不同 .snk 文件构建 log4net 的 Common.Logging->log4net? 当我想构建项目时,它会查找具有 PublicKeyToken=1b44e1d426115821 的 log4net,但我的不同。我试图识别我的 log4net 程序集,如下所示。这行不通。

<configSections>
<sectionGroup name="common">
  <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net,Version=1.2.10.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXX"/>

谢谢

【问题讨论】:

  • 我更新了我的答案,为你增加了一个选项。我不确定你是否会考虑,但我想我还是会提到它。

标签: log4net log4net-configuration


【解决方案1】:

你有没有让 Common.Logging 引用你的 log4net 版本,然后重建它(Common.Logging)?

我怀疑您将不得不打开 Common.Logging.Log4Net 项目并将对 log4net 的引用从 Common.Logging 重新分发到您的 log4net 的 log4net 更改。我认为您应该能够重建 Common.Logging 并且您还应该能够在配置中引用您的 log4net 版本。

更新... 另一个想法是编写自己的 log4net 工厂适配器。只需使用来自 Commom.Logging 的 log4net 工厂适配器项目的确切源代码。那里没有太多的代码。在您的项目中,引用您自己的 log4net。配置 Common.Logging 以使用您的工厂适配器。我不知道这个选项是否比使用您的 log4net 版本重建 Commom.Logging 更具吸引力,但我想我还是会提到它。

【讨论】:

  • 可能会起作用。但我不想重建 Common.Logging 源来搜索我的自定义 Log4net.dll。我想应该有另一种方法来实现我自己的 Log4net。感谢您的回复。
  • 我能想到的唯一另一件事是使用此处描述的程序集版本重定向:netcommon.sourceforge.net/docs/2.0.0/reference/html/… 但我认为这只适用于重定向到同一程序集的另一个版本(已与相同的密钥)您是否必须拥有自己的 log4net 版本?也许还有另一种方法可以完成您想做的任何事情?
猜你喜欢
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 2020-03-05
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多