c# – 从配置部分’common / logging’获取Common.Logging的配置失败

我正在尝试使用以下日志记录程序集来配置控制台应用程序:

> Common.Logging.dll(2.1.0.0)
> Common.Logging.Log4Net1211.dll(2.1.0.0)
> log4net.dll(1.2.11.0)

如果记录器通过编程方式配置,那么一切正常:

NameValueCollection properties = new NameValueCollection(); properties["showDateTime"] = "true";    
Common.Logging.LogManager.Adapter = new Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter(properties);

但是,如果我尝试使用以下配置文件启动它,它会爆炸:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="common">
            <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
        </sectionGroup>
    </configSections>

    <common>
    <logging>
        <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">
             <arg key="configType" value="FILE-WATCH"/>
            <arg key="configFile" value="~/Log4NET.xml"/>
        </factoryAdapter>
    </logging>
</common>
</configuration>

这些是相关的错误信息:

{"Unable to cast object of type 'System.Configuration.DefaultSection' to type 'System.Configuration.AppSettingsSection'."}

{"Failed obtaining configuration for Common.Logging from configuration section 'common/logging'."}

似乎无法解析我的配置文件,有没有人知道正确的格式应该是什么,还是别的什么是错的?我使用the official documentation创建了我的配置文件。

您的应用程序有两个问题(我下载的一个):

> app.config中的configSections如下所示:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

    <sectionGroup name="common">
        <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>

请注意,log4net部分被声明两次?删除第一个。

>删除第一个log4net部分后,我得到以下内容:

Could not load file or assembly ‘log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我从log4net网站下载了log4net 1.2.11.0,解压缩,解压缩了dll,并在你的例子中替换了log4net,似乎工作。

http://stackoverflow.com/questions/11368267/failed-obtaining-configuration-for-common-logging-from-configuration-section-co

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 从配置部分’common / logging’获取Common.Logging的配置失败