2013-07-04 15 views
13

To jest mój komunikat o błędzie:konfiguracja log4net - nie udało się znaleźć punkt

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" /> 

to moja 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> 

Co jest nie tak z moim config?

Aktualizacja:

mają również 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 - taka sama jak wersji jeden

i Web.Debug.config, że jest pusty:

<?xml version="1.0"?> 

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

</configuration> 
+0

Mam ten komunikat o błędzie, ale mój program rejestrujący działa poprawnie. – MikroDel

Odpowiedz

5

Nic nie wydaje się nie tak z def w sekcji pod numerem <configSections>.

Spróbuj dodać [assembly: log4net.Config.XmlConfigurator(Watch = true)] do swojej AssemblyInfo.cs w folderze właściwości projektu. To powinno wystarczyć, jeśli konfiguracja jest poprawna pod tagiem.

EDIT:

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

dzięki za odpowiedź Siraj. Próbowałem i nic się nie stało - ten sam komunikat o błędzie – MikroDel

+0

Sprawdź moją edycję i spróbuj tego fragmentu kodu w "AppStart" lub wykonanie punktu zaczyna się na twojej aplikacji –

+0

Nie zapomnij dodać odniesienia do zestawu system.configuration. i dodaj "using System.Configuration" –

17

Nazywasz XmlConfigurator.Configure() gdzieś?

Usuń te połączenia i dodaj tylko atrybut [assembly: log4net.Config.XmlConfigurator(Watch = true)].

Zwykle łatwiej jest skonfigurować log4net w oddzielnym pliku. Utwórz plik log4net.config i zmienić atrybut:

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

Usuń sekcję w web.config.

+0

"Czy wywołujesz gdzieś XmlConfigurator.Configure()?" - nie – MikroDel

+0

To zadziałało. Domyślam się, że XmlConfigurator.Configure() nie jest już używany? Tak zawsze to robiłem. Nigdy nie musiałem modyfikować pliku assembly.cs. Lepiej przeczytaj najnowszą dokumentację. –

Powiązane problemy