支持NLog 2.1

时间:2014-03-06 11:42:06

标签: c# nlog common.logging

我想升级到Nlog 2.1版。我应该使用哪个版本的Common Logging库?

我目前正在使用带有Nlog 2.0的Common Logging 2.0版。我用2.1取代了NLog v2.0,但它不起作用。有什么帮助吗?

我收到此错误 - 无法从配置部分'common / logging'获取Common.Logging的配置。

1 个答案:

答案 0 :(得分:3)

您应该使用Common.Logging.NLog20,但您必须添加程序集重定向:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.1.2.0" newVersion="2.1.2.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
  </dependentAssembly>
</assemblyBinding>

您的常见日志配置应如下所示:

<common>
    <logging>
      <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog20">
        <arg key="configType" value="FILE" />
        <arg key="configFile" value="~/NLog.config" />
      </factoryAdapter>
    </logging>
  </common>

值得庆幸的是,common.logging和适配器的nuget包已更改(see here)您应该能够使用Common.Logging.NLog21库。