1

我第一次尝试将 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

控制台项目

4

2 回答 2

1

似乎使用 Common.Logging.NLog20 解决了这个问题。从这个网站http://netcommon.sourceforge.net/docs/2.1.0/reference/html/ch01.html

Common.Logging.NLog20 -> 与 NLog 2.0.0.2 相关联

Common.Logging.NLog10 -> 链接到 NLog 1.0.0.505

所以对于 NLog 1.5 应该使用 NLog20。

于 2014-03-03T17:13:14.963 回答
0

遵循以下步骤绝对可以解决所有配置和缺少 dll 的问题。 https://stackoverflow.com/a/27825054/384554

于 2015-01-08T21:59:39.443 回答