Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can NLog v2 be used with Common.Logging

I tried using these together today, and was getting a version mismatch, as it's looking for NLog v1.

Does Common.Logging support NLog v2 yet?

If not, does anyone know if an assembly version redirect can safely be used?

like image 558
UpTheCreek Avatar asked May 17 '11 08:05

UpTheCreek


2 Answers

You can simply do assembly redirect in app.config or web.config, and CommonLogging will just work fine with NLog2 by using NLog2 as logging framework:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

The only issue is if you want to redirect NLog message to some other logging framework using CommonLogging 2.0, then there is a compatibility issue. But that is a very unusual use case.

like image 130
Kenneth Xu Avatar answered Oct 14 '22 10:10

Kenneth Xu


If you used Nuget to get the Common.Logging.NLog library, the package will download Common.Logging v2.0 dependency. If you use Nuget to update Common.Logging, it will update it to v2.1.1.0, which will prevent the Could not load file or assembly 'NLog, Version=1.0.0.505 error.

like image 41
Shawn Mclean Avatar answered Oct 14 '22 10:10

Shawn Mclean