Question

I want to upgrade to Nlog version 2.1. Which version of Common Logging library should I use?

I am currently using Common Logging version 2.0 with Nlog 2.0. I replaced NLog v2.0 with 2.1 but it does not work. Any help?

I get this error - Failed obtaining configuration for Common.Logging from configuration section 'common/logging'.

Was it helpful?

Solution

You should use Common.Logging.NLog20 but you'll have to add an assembly redirect :

<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>

And your common logging config should look something like this :

<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>

Thankfully the nuget packages for common.logging and adapters has changed (see here) You should be able to use the Common.Logging.NLog21 libarary.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top