我正在尝试解决的有趣问题。所以这里我们在 iis7 上运行了简单的 wcf 服务。与 common.logging 相关的代码如下所示:
using Common.Logging;
private static readonly ILog log = LogManager.GetCurrentClassLogger();
log.Error("Opened Sagas Monitoring Service: {0}", ex);
web.config 配置:
<configSections>
<sectionGroup name="commonLogging">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
<commonLogging>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
<arg key="configType" value="FILE-WATCH" />
<arg key="configFile" value="~/log4net.config" />
</factoryAdapter>
</logging>
log4net.config 与 web.config 位于同一部署文件夹中,其中包含我们需要的所有程序集。
所以问题是下一个。在我们调用服务后,它不会创建记录器。并且没有例外。但是,当我们的服务开启并且我们无论如何更改部署文件夹中的 web.config 文件时,它会立即获取记录器。问题似乎出在 FactoryAdapter 上。有任何想法吗?