Раздел Log4Net в Web.Config генерирует ошибку

Итак, я пытаюсь настроить Log4Net в своем приложении Web .NET 4.0. Я добавил правильный .dll в свой проект и добавил в свой файл Web.Config следующее:

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<root>
  <level value="DEBUG" />
  <appender-ref ref="RollingLogFileAppender" />
</root>
</configSections>
 <log4net debug="true">
 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="C:\\TestProj\\TestLog.txt" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
  </layout>
 </appender>

However, if I append the "log4net" section to Web.Config, I will receive the error message

Не удается начать отладку на веб-сервере. См. справку для распространенных проблем с конфигурацией.....

Убедитесь, что сервер работает правильно. Убедитесь, что в файле web.config нет синтаксических ошибок........

ПРИМЕЧАНИЕ Я могу удалить все внутренности этого раздела и оставить только объявление:

<log4net></log4net>

и я все равно получу ту же ошибку.

Может ли кто-нибудь дать мне несколько советов о том, как отследить эту ошибку?


person pghtech    schedule 10.04.2011    source источник


Ответы (2)


Взгляните на примеры конфигураций на документации log4net на главной странице.
Скорее всего, вы неправильно разместили обязательные теги.

person Jahan    schedule 10.04.2011

Для разработчиков, которые точно не знают, как начать работу, может помочь следующее:

ConfigSections в app.config

Не забудьте сообщить своему приложению, что библиотека представляет раздел пользовательской конфигурации, который вы собираетесь использовать, я не совсем уверен, является ли он обязательным или нет, но я всегда использую его в качестве первого раздела в корневом теге <configuration>.

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

Конфигурация log4net в app.config

В log4net доступно довольно много разных приложений, но я обычно использую RollingFileAppender, поэтому в этом примере я использую тот же самый, остальные вы можете найти здесь.

<log4net>
    <!-- file appender -->
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:/logs/my_log_file.log"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <maxSizeRollBackups value="30"/>
      <datePattern value=".yyyy-MM-dd"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingFileAppender"/>
    </root>
  </log4net>

Обновить файл AssemblyInfo.cs

Я всегда пропускаю этот шаг всякий раз, когда мне нужно создать новый проект. Поэтому помните, что вы должны сообщить своему приложению, чтобы оно следило за XMLConfigurator для выполнения настройки log4net, поэтому следующая строка идет в конце файла AssemblyInfo.cs:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

Начать

Не забудьте включить ссылку на log4net.dll, а затем используйте следующую строку кода для инициализации регистратора в классе.

private static ILog log = LogManager.GetLogger(typeof(MyClass));

И в конце давайте использовать его, как показано ниже

log.Info("Hello log4net");

Удачной регистрации :)

person Mubashar    schedule 09.10.2013