2013-07-04 15 views
13

を見つけることができなかった。これは私のエラーメッセージ:log4netの構成は - セクション

log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. The configuration section should look like: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 

これは私のweb.configファイルである:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 

    <system.serviceModel> 
    ... 
    </system.serviceModel> 

    <connectionStrings> 
    ... 
    </connectionStrings> 

    <log4net> 
    ... 
    </log4net> 

</configuration> 

私の設定が間違って何ですか?

更新:

もWeb.Release.config有無:

<?xml version="1.0"?>  
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 

    <system.web> 
     <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 

    <system.serviceModel> 
    ... 
    </system.serviceModel> 

    <connectionStrings> 
    ... 
    </connectionStrings> 

    <log4net> 
    ... 
     <root> 
      <level value="DEBUG" xdt:Transform ="Replace"/> 
     </root> 
    </log4net> 

</configuration> 

Web.Test.cofig - リリース1

とWeb.Debug.configと同じで、その空です:

<?xml version="1.0"?> 

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">  

</configuration> 
+0

このエラーメッセージが表示されますが、Loggerが正常に動作しています。 – MikroDel

答えて

5

defと間違っているようです<configSections>のセクションを参照してください。

[assembly: log4net.Config.XmlConfigurator(Watch = true)]をプロジェクトのプロパティフォルダにあるAssemblyInfo.csに追加してみてください。これは、あなたの設定がタグの下で正しい場合に役立ちます。

EDIT:

XmlElement log4NetSection = (XmlElement)ConfigurationManager.GetSection("log4net"); 
      log4net.Config.XmlConfigurator.Configure(log4NetSection); 
+0

あなたの答えSirajに感謝します。それを試しても何も起こらない - 同じエラーメッセージ – MikroDel

+0

私の編集をチェックし、 "AppStart"でこのコードを試してみるか、アプリケーションでポイント実行が始まる –

+0

system.configurationアセンブリへの参照を追加することを忘れないでください。 "using System.Configuration"を追加してください。 –

17

は、あなたがどこかにXmlConfigurator.Configure()を呼び出していますか?

これらの呼び出しを削除し、[assembly: log4net.Config.XmlConfigurator(Watch = true)]属性のみを追加します。

通常、別のファイルにlog4netを設定する方が簡単です。ファイルlog4net.configを作成しに自分の属性を変更します。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

あなたweb.configでセクションを削除します。

+0

"XmlConfigurator.Configure()をどこかで呼び出していますか?" - いいえ – MikroDel

+0

これはうまくいった。私はXmlConfigurator.Configure()はもう使用されていないと思いますか?これが私がいつもやったことです。 assembly.csを変更する必要はありませんでした。最新のドキュメントをよく読んでください。 –

関連する問題