Раздел Log4Net в Web.Config генерирует ошибку - PullRequest
8 голосов
/ 10 апреля 2011

Итак, я пытаюсь настроить 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>

Однако, если я добавлю раздел «log4net» в Web.Config, я получу сообщение об ошибке

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

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

Примечание Я могу удалить все внутренности этого раздела и оставить только объявление:

<log4net></log4net>

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

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

Ответы [ 2 ]

15 голосов
/ 10 октября 2013

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

ConfigSections в app.config

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

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

log4net config в 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");

Счастливое ведение журнала:)

1 голос
/ 10 апреля 2011

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

...