我第一次尝试将 NLog 与 common.logging 一起使用。我在一个测试项目中实现了 NLog,一切正常,然后尝试应用 common.logging,但我遇到了一些困难。
App.config下的common.logging配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog10">
<arg key="configType" value="FILE" />
<arg key="configFile" value="~/NLog.config" />
</factoryAdapter>
</logging>
</common>
</configuration>
我得到的错误在 Common.Logging.LogManager 第 317 行
private static ILoggerFactoryAdapter BuildLoggerFactoryAdapterFromLogSettings(LogSetting setting)
{
...
adapter = (ILoggerFactoryAdapter)Activator.CreateInstance(setting.FactoryAdapterType, args);
...
}
在调试时,我可以看到 configType 和 configFile args 都在传递。
我的 NLog.config 设置为始终在我的 vs 中复制。
我得到的错误是:
An unhandled exception of type 'Common.Logging.ConfigurationException' occurred in NLogTutorial1.exe
Additional information: Unable to create instance of type Common.Logging.NLog.NLogLoggerFactoryAdapter. Possible explanation is lack of zero arg and single arg NameValueCollection constructors
视觉工作室 2008
Common.Logging 版本 2.1.1
NLog 1.5 版
C# 框架 3.5
控制台项目