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?
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?
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.
NLog.TargetWithLayout
, but the class was moved to NLog.Targets.TargetWithLayout
so loading fails. This seems to work for many people so the next thing is to find out if using MEF breaks this. –
Lilytrotter Common.Logging.NLog.CommonLoggingTarget
s baseclass to NLog.Targets.TargetWithLayout
and replace line 90 with log(logger, delegate { return this.Layout.Render(logEvent); }, logEvent.Exception);
. Not a pretty solution, but works for me for now. –
Lilytrotter 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.
© 2022 - 2024 — McMap. All rights reserved.