log4net, как дела с этим конфигом - PullRequest
8 голосов
/ 20 января 2012

log4net сообщает:

Не найдены никакие приложения для logger log4net: Logger: Пожалуйста, правильно инициализируйте систему log4net.

У меня есть отдельная конфигурация log4netфайл:

<!--?xml version="1.0"?-->
<configuration>
  <configsections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
  </configsections>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="c:\temp\log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="5MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>


  </log4net>
</configuration>

.. и код запуска этого приложения

private static ILog logger;
protected void Application_Start(object sender, EventArgs e)
{
    ////This tells log4net where to go and look for its configuration file and also to watch it for any changes
    log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Config\Moogle\Log4Net.config"));
    logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
    logger.Debug("Application_Start Fired");

1 Ответ

20 голосов
/ 20 января 2012

Вы только определили аппендера.Вам также нужно определить корневой регистратор и регистратор для использования appender (они могут быть одним и тем же регистратором, если вам нужен только один).Добавьте следующий корневой элемент в конфигурацию log4net.

<root>
  <level value="DEBUG" />
  <appender-ref ref="RollingLogFileAppender" />
</root>
...