исключение конфигурации log4net

Я использую log4net для ведения журнала. Моя конфигурация ведения журнала хранится в отдельном файле.

Web.Config:ConfigSections

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

Указание моего файла конфигурации в AssemblyInfo.cs

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

И когда я инициализирую свой LogManager, я получаю эту ошибку

"System.TypeLoadException"
message: Could not load type 'log4net.Config.Log4NetConfigurationSectionHlandler' from assembly 'Log4net'.

Да, там написано "Log4NetConfigurationSectionHlandler", это не опечатка

и позже эта ошибка

An error occurred creating the configuration section handler for log4net: Could not load type 'log4net.Config.Log4NetConfigurationSectionHlandler' from assembly '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" />

person ram    schedule 18.12.2009    source источник
comment
дубликат: stackoverflow.com/questions/1321261/   -  person Mauricio Scheffer    schedule 18.12.2009
comment
Изменить: я только что обнаружил, что мой web.config имеет тип Log4NetConfigurationSectionHlandler из web.config. Я все еще работаю над получением этой работы с внешним файлом конфигурации.   -  person ram    schedule 18.12.2009


Ответы (1)


Если у вас есть конфигурация в отдельном файле log4net.config, вам не нужен sectionHandler. Убери это.

Вы также, вероятно, вызываете XmlConfigurator.Configure() где-то в вашем коде. Удалите и это.

Также см. этот вопрос

person Mauricio Scheffer    schedule 18.12.2009
comment
Я поддерживаю этот ответ. У меня была такая же проблема в моем приложении WPF, когда у меня был раздел log4net в моем файле app.config. Я переместил конфигурацию в отдельный файл log4net.config, и это решило проблему. - person Rob Sobers; 18.12.2009
comment
Я получил эту ошибку при попытке этого предложения: log4net: ERROR XmlConfigurator: не удалось найти раздел конфигурации «log4net» в файле .config приложения. Проверьте файл .config на наличие элементов ‹log4net› и ‹configSections›. Раздел конфигурации должен выглядеть так: ‹section name=log4net type=log4net.Config.Log4NetConfigurationSectionHandler,log4net /› - person ram; 18.12.2009
comment
@ram: вы, вероятно, вызываете XmlConfigurator.Configure() где-то в своем коде. удалить это. - person Mauricio Scheffer; 18.12.2009
comment
Я немного запутался, Маурисио, я вызываю его, когда инициализирую свой Log Manager static ActivityLogManager() { log4net.Config.XmlConfigurator.Configure(); } Это не должно вызываться? - person ram; 18.12.2009
comment
Хорошо, теперь я понимаю, поскольку мой файл конфигурации является внешним, я не должен вызывать XMLConfigurator.Configure, поскольку он ищет раздел конфигурации в моем файле web/app.config. Правильно ли я понимаю? - person ram; 18.12.2009
comment
Точно, вы не должны не вызывать его. Атрибут сборки уже обрабатывает инициализацию. - person Mauricio Scheffer; 18.12.2009
comment
Привет, Маурисио, внешний файл конфигурации должен быть .xml или он может иметь расширение .config? - person ram; 19.12.2009
comment
@ram не имеет значения, это может быть что угодно. - person Mauricio Scheffer; 19.12.2009
comment
Спасибо, Маурисио. Я работаю над этим, обновлю этот пост как можно скорее - person ram; 20.12.2009
comment
Спасибо, Маурисио, это сработало. Я публикую один новый вопрос в ближайшее время. Речь идет об использовании одного класса в сборке am для регистрации всех событий, и я вижу, что регистратор настраивается на этот статический класс ведения журнала, а не на класс, который вызывает эти методы журнала. - person ram; 21.12.2009
comment
@Darren: конфигурация ведения журнала никогда не должна определяться в библиотеках. За это отвечает приложение. - person Mauricio Scheffer; 22.06.2012
comment
@Darren: это работает, ничего не добавляя в библиотеки. Ваша проблема скорее всего в другом. Пожалуйста, задайте новый вопрос со всеми соответствующими подробностями. - person Mauricio Scheffer; 25.06.2012
comment
Новый вопрос здесь: stackoverflow.com/questions/11185726/ - person Darren; 25.06.2012