私が解決しようとしている興味深い問題。ここでは、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 にあるようです。何か案は?