Журнал Log4Net отображается в окне консоли - PullRequest
4 голосов
/ 02 июня 2011

У меня противоположная проблема, как и у большинства людей с Log4net.У меня есть базовый обработчик скользящих журналов, я использую уровни INFO, WARN и ERROR в своем коде.У меня отладка отключена в app.config.Он по-прежнему помещает данные журнала в окно консоли в дополнение к приложению скользящего журнала.

Как мне остановить это поведение?Это делает просмотр окна консоли кошмаром.

Моя конфигурация:

<log4net debug="false">
  <appender name="RollingFileAppender"
            type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString"
          value="milliondollars.log"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Composite"/>
    <filter type="log4net.Filter.LevelRangeFilter">
      <acceptOnMatch value="true" />
      <levelMin value="INFO" />
      <levelMax value="FATAL" />
    </filter>
    <datePattern value="yyyyMMdd"/>
    <maxSizeRollBackups value="100"/>
    <maximumFileSize value="15MB"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %-5level %logger: %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="ALL" />
    <appender-ref ref="RollingFileAppender" />
  </root>
</log4net>

Ответы [ 3 ]

1 голос
/ 02 июня 2011

Ну, похоже, ты не хочешь больше отказываться от подробностей ...

Я могу подумать о следующих возможных причинах:

  • У вас есть консольный appender в любом разделе <logger> или <root>
  • Вы регистрируете консольного приложения автоматически
  • У вас есть программа-регистратор, которая всегда запускает строку Console.Write перед регистрацией
1 голос
/ 02 июня 2011

Исходя из предоставленной вами дополнительной информации, я могу видеть пару вещей.Сначала вы регистрируете все сообщения (включая сообщения отладки).Вы просто не показываете отладочную информацию log4net.Что касается того, почему вы пишете в окно консоли, я бы посоветовал посмотреть на упаковщик для ваших сообщений журнала.Возможно, вы пишете в консоль там.

Кроме того, просмотрите выполнение вашей программы в режиме отладки.Посмотрите, какая строка пишет в вашу консоль.

0 голосов
/ 08 августа 2013

Моя проблема заключалась в использовании этого при создании экземпляра регистратора;

        log4net.Config.BasicConfigurator.Configure();
        ILog log = log4net.LogManager.GetLogger(typeof(Program));

Я потратил немного времени, чтобы понять, что это игнорирование моей конфигурации и инициализация с настройками по умолчанию. Заменено на это, как предлагают люди, и оно отлично работает;

    private static readonly log4net.ILog log = log4net.LogManager.GetLogger
   (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

Источник: http://elegantcode.com/2007/12/07/getting-started-with-log4net/

...